配置Java JDK

快速配置JDK11

1. 进入file目录(可选)

1
cd /opt/file

下面全部操作都在/opt/file目录下操作,你也可以选择在其他目录进行。

2. 下载JDK11

1
sudo wget -P /opt/file -O jdk-11.0.19_linux-x64_bin.tar https://download.oracle.com/otn/java/jdk/11.0.19+9/56a39267b45342398c37a72026d961ab/jdk-11.0.19_linux-x64_bin.tar.gz?AuthParam=1685293276_d5e2ef0f7172f346a89a348c9e17cdbe
  • -P:指定下载文件存储路径

  • -O:下载后指定存储文件名

3. 创建jdk存储位置

我习惯将JDK存储在/bin/jvm下面

1
sudo mkdir -p /bin/jvm

4. 解压JDK

1
tar -zxvf jdk-11.0.19_linux-x64_bin.tar -C /bin/jvm/

5. 添加环境变量

1
2
3
sed -i '$a\export JAVA_HOME=/bin/jvm/jdk-11.0.19 #这个是你解压的JDK文件路径\
export PATH=$PATH:${JAVA_HOME}/bin\
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar' /etc/profile

6. 加载环境变量

1
source /etc/profile

7. 查看JDK版本

1
2
3
4
5
java -version
# 出现效果:
java version "11.0.19" 2023-04-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.19+9-LTS-224)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.19+9-LTS-224, mixed mode)

建议在root用户下操作

前往官网下载JDK(此处我下载的是jdk-1.8.0)

04JDK下载

1
su # 输入超级用户密码

下载JDK并解压

上传文件到Linux(二选一)

1
scp .\jdk-8u341-linux-x64.tar.gz lilbai@192.168.2.5:/home/lilbai/Downloads

05将JDK上传到服务器

解压

1
tar -zxvf jdk-8u341-linux-x64.tar.gz

将文件移动到/opt下

一般默认JDK安装在/bin/jvm/下,我这里安装在/opt

1
mv jdk1.8.0_341 /opt/

打开配置环境变量文件

1
vim /etc/profile

配置环境变量

1
2
3
sed -i '$a\export JAVA_HOME=/bin/jvm/jdk-11.0.19 #这个是你解压的JDK文件路径\
export PATH=$PATH:${JAVA_HOME}/bin\
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar' /etc/profile

使用sed命令将内容插入到/etc/profile最后一行

重新加载环境变量

1
source /etc/profile

查看JDK是否配置好

1
2
3
4
java -version # 出现如下代码说明成功了
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

07jdk安装成功

配置Tomcat

版本 10.0.23

文件类型:tar.gz

配置Tomcat前配置JDK,如果你还没有配置JDK,请看上一步

前往官网下载

蓝奏云:https://rookie1679.lanzouy.com/iEVvB0bztaef

00下载tomcat

将文件上传到Linux

1
scp .\apache-tomcat-10.0.23.tar.gz lilbai@192.168.232.130:/home/lilbai/Downloads

解压文件

1
tar -zxvf apache-tomcat-10.0.23.tar.gz

移动到/opt下

1
mv apache-tomcat-10.0.23 /opt

运行Tomcat运行测试

1
/opt/apache-tomcat-10.0.23/bin/startup.sh

01tomcat运行成功

浏览器打开Tomcat

tomcat默认是使用8080端口的,我们在访问的时候要加上8080端口

1
192.168.232.130:8080 #根据你的IP地址打开

02tomcat页面

Linux解压编译安装Nginx

下载Nginx

由于Nginx官网在国外,有时候直接下载Nginx的速度不是很理想,你可以挂个梯子下载到本机再上传到服务器。

前往官网下载

官网Nginx-1.24.0 pgphttp://nginx.org/download/nginx-1.24.0.tar.gz

蓝奏云 :https://rookie1679.lanzouy.com/iI6Cc0bzta5g

01下载Nginx

上传文件到服务器

在Windows在打开终端,进入nginx安装包下载目录

1
scp nginx-1.22.0.tar.gz lilbai@192.168.232.130:/home/lilbai/Downloads

使用wget下载

1
sudo wget -P /opt/file http://nginx.org/download/nginx-1.24.0.tar.gz

这里下载时,我使用了最新版1.24.0

解压文件

1
sudo tar -zxvf nginx-1.22.0.tar.gz -C /opt

解压后的Nginx文件夹不要删掉,即使安装完也不要删掉,后面如果你想添加nginx模块,你还需要这个源文件进行编译安装新模块在nginx里面。

安装依赖

博主安装环境:Ubuntu-22.04-Server

1. 更新包

1
sudo apt-get update

2. 安装依赖

1
sudo apt -y install gcc make libssl-dev zlib1g-dev libgd-dev libgeoip-dev libpcre2-dev libpcre3-dev

1. 更新包

1
sudo yum -y update

2. 安装依赖

1
sudo yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

进入Nginx根目录

1
cd /opt/nginx-1.22.0

编译Nginx

1
sudo ./configure --prefix=/usr/local/nginx --with-http_ssl_module

编译安装

1
sudo make && make install

启动nginx

1
/usr/local/nginx/sbin/nginx

浏览器输入你的IP地址

出现如下说明Nginx安装成功了

03Nginx

重点注意:Nginx的安装目录在/usr/local/nginx,配置文件在/usr/local/nginx/conf/nginx.conf

设置软链接

软链接类似Windows的快捷方式一样,将/usr/local/nginx/sbin/nginx 的文件链接在/usr/local/sbin/nginx,这样在全局的终端都可以使用。

1
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx

个人习惯conf.default

新建

我个人习惯将nginx的配置文件单独放出来一个文件夹conf.d

conf下文件一个conf.d文件夹,进入conf.d内新建一个conf.default文件来编写server

1
cd /usr/local/nginx/conf/ && mkdir conf.d && cd conf.d && touch conf.default && ls

引入新建conf.default使其生效

nginx.conf引入新建的conf.default文件

1
sed -i '21i     include /usr/local/nginx/conf/conf.d/*.default;' /usr/local/nginx/conf/nginx.conf

设置vim显示行号

/etc/vim/vimrc的第七行插入:set nu,在打开vim编辑器出现行号

1
sed -i '8i \n" 显示行号\n:set nu' /etc/vim/vimrc

nginx反向代理tomcat

前提:安装好JDK、Nginx、Tomcat

配置nginx.conf

1
vim /usr/local/nginx/conf/nginx.conf

在大概35-47行,将location括号的内容删掉,添加proxy_pass http://127.0.0.1:8080;,修改后如下图。

1
2
3
4
5
6
7
8
server {
listen 80;
server_name localhost;

location / {
proxy_pass http://127.0.0.1:8080;
}
}

01编辑nginx.conf文件

重启nginx

1
/usr/local/nginx/sbin/nginx -s reload

浏览器打开

直接输入ip地址,出现tomcat页面说明nginx反向代理tomcat已经成功了。

02配置成功

Linux安装Apache2

检查httpsd安装情况

检查httpd包是否安装,如查看到安装则卸载即可

1
rpm -q httpd

image-20230502231615478

准备相关依赖包

需要三个依赖包:httpd-2.4.23.tar.gz、apr-1.5.2.tar.gz、apr-util-1.5.4.tar.gz

安装依赖

安装apr依赖

解压文件

将文件下载解压文件,并进入解压后的文件夹。

1
2
tar -zxvf httpd-2.4.23.tar.gz
cd apr-1.5.2

编译apr

1
./configure --prefix=/usr/local/apr

编译文件,为后续安装做准备。

01-编译文件-20230427-801

安装apr

1
make && make install -j 2
  • -j 2:表示开启2两个线程安装,加快安装速度

02-安装-20230427-460

安装apr-util依赖

跟安装上面apr一样,也是先编译再安装

1
2
3
4
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install -j 2

安装httpd依赖

1
2
3
4
tar -zvxf httpd-2.4.23.tar.gz
cd httpd-2.4.23
./configure --enable-so --enable-deflate --enable-ssl --enable-mpms-shared=all --with-mpm=event --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make && make install -j 2

--enable-mpms-shared=all:启用MPM所有支持的模式,这样event、work、prefork就会以模块化的方式安装

配置服务

将httpd添加到service中

在/etc/init.d文件夹下创建一个httpd文件,将以下内容写入

1
/usr/local/apache2/bin/apachectl $1

接管本地80端口服务

编辑httpd.conf文件,将ServerName的值改为127.0.0.1:80,表示节接管本地的80端口。

1
vim /usr/local/apache2/conf/httpd.conf

03-修改httpd.conf-20230427-037

启动httpd服务

1
service httpd start

04-启动httpd-20230427-933

查看修改效果

05-查看效果-20230427-872

CentOS 7Minimal环境配置

前言:今天想装一下CentOS 7,看到这个版本比较小,直接上手了。

使用过程中,发现是真的精简,想直接跑一下war包,发现缺少依赖,想用wget下载一下maven,发现wget也没有,想make一下,发现make也没有,原来是真的精简

运行war包依赖

1
2
3
yum install dejavu-sans-fonts
yum install fontconfig
yum install xorg-x11-server-Xvfb

安装wget

1
yum install wget

安装make

make是gcc的编译器,一定要安装

1
2
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++

安装vim

1
yum install vim

安装net-tools

今天想删除一下网卡,发现没有ifconfig指令,又得装一下了

1
yum -y install net-tools

删除网卡

1
ifconfig 网卡名 down

CentOS 7安装Git

安装依赖库

1
2
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker

卸载旧版本的git(没有可跳过)

1
yum remove git

下载Git

此处安装的是2.9.2

1
2
3
wget https://github.com/git/git/archive/v2.9.2.tar.gz
# 此处你要是没有wget,可以装一下
# yum install wget

解压Git

1
tar -xzvf v2.9.2.tar.gz

将文件移动指定目录下

1
2
3
mkdir /usr/local/git
mv ./git-2.9.2 /usr/local/git
cd /usr/local/git/git-2.9.2

编译

此处你要是没有安装make,需要安装一下。make是gcc的编译器,一定要安装

yum -y install gcc automake autoconf libtool make

yum install gcc gcc-c++

1
2
make prefix=/usr/local/git all
make prefix=/usr/local/git install

添加Git到环境变量

1
echo "export PATH=\$PATH:/usr/local/git/bin" >> /etc/profile

加载环境变量

1
source /etc/profile

查看Git版本

1
git --version

Ubuntu 20.04安装Git

Ubuntu安装Git就简单一点了

更新包

1
sudo apt update

安装Git

1
sudo apt install git

查看安装版本

1
git --version

CentOS 7升级vim9

提示:VIM 9默认安装位置在/usr/local/bin/vim,但是CentOS默认在/usr/bin/vimvim执行文件

卸载旧版的vim

使用yum卸载vim

1
yum -y remove vim

查找vim的安装依赖

1
2
3
4
5
[root@opt]# yum list installed | grep -i vim
vim-common.x86_64 2:7.4.1868-1.el7.centos @anaconda
vim-enhanced.x86_64 2:7.4.1868-1.el7.centos @anaconda
vim-filesystem.x86_64 2:7.4.1868-1.el7.centos @anaconda
vim-minimal.x86_64 2:7.4.1868-1.el7.centos @anaconda

删除依赖

1
yum remove vim-enhanced vim-common vim-filesystem

删除依赖

1
rpm -e --nodeps vim-minimal

安装方式一

安装依赖

1
yum install -y gcc make ncurses ncurses-devel
1
2
3
4
5
6
7
8
9
10
yum install -y ctags git tcl-devel \
ruby ruby-devel \
lua lua-devel \
luajit luajit-devel \
python python-devel \
perl perl-devel \
perl-ExtUtils-ParseXS \
perl-ExtUtils-XSpp \
perl-ExtUtils-CBuilder \
perl-ExtUtils-Embed

下载VIM

或者你可以使用我的链接下载。我已备份vim9到蓝奏云:https://rookie1679.lanzouy.com/iUoSF0dj1s5c

1
git clone https://github.com/vim/vim.git

进入vim-master

1
cd vim-master

安装模块

1
2
3
4
5
6
7
./configure --with-features=huge \
--enable-multibyte \
--enable-rubyinterp \
--enable-pythoninterp \
--enable-perlinterp \
--enable-luainterp \
--enable-gui=no

编译安装

1
make && make install

创建软链接

1
ln -s /usr/local/bin/vim /usr/bin/vim

安装成功

1
vim

安装方式二

下载vim9

1
wget https://ftp.nluug.nl/pub/vim/unix/vim-9.0.tar.bz2

解压文件

1
tar xvf vim-9.0.tar

进入src文件夹

1
cd ./vim90/src

编译安装vim9

1
make && install make

创建软链接

1
ln -s /usr/local/bin/vim /usr/bin/vim

安装成功

1
vim

Linux安装Maven

下载maven

官网下载:https://maven.apache.org/download.cgi

你可以在自己win10下载maven再上传到Linux,或者你直接在Linux下载maven也可以。

直接在Linux下载,这里使用wget工具下载,你也可以使用其他工具下载。

查看是否安装wget

1
rpm -qa|grep "wget"

如果出现如下图,说明wget已安装,如果说明都没出现,说明没安装

01查看是否安装wget

安装wget

1
sudo yum -y install wget

检查是否安装成功

1
rpm -qa|grep "wget"

下载maven

使用wget下载工具下载

1
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz

上传文件到Linux

打开cmd

打开cmd或者powershell都可以,这里打开cmd

11在maven文件下打开cmd

上传文件

1
scp .\apache-maven-3.8.6-bin.tar.gz root@192.168.2.12:/opt

12上传文件

查看文件

13已上传文件

解压maven压缩包

将当前目录下的apache-maven-3.8.6-bin.tar.gz压缩包解压并指定目录放在/usr/local

1
tar -zxvf apache-maven-3.8.6-bin.tar.gz -C /usr/local

将maven改名

apache-maven-3.8.6文件夹名改为maven,短一点看着舒服,你也可以不改。

1
mv /usr/local/apache-maven-3.8.6 /usr/local/maven

添加环境变量

手动添加环境变量

将以下命令添加到/etc/profile

打开/etc/profile文件

1
vim /etc/profile

添加环境变量

将以下代码添加到/etc/profile

1
2
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH

02添加环境变量

一条命令自动添加环境变量

这条命令标识将export MAVEN_HOME=/usr/local/maven export PATH=$MAVEN_HOME/bin:$PATH添加到/etc/profile文件内的第9行前面,并且自动加载环境变量。

1
echo "export MAVEN_HOME=/usr/local/maven \nexport PATH=$MAVEN_HOME/bin:$PATH" >> /etc/profile && source /etc/profile

查看maven版本

首次查看maven版本可能会稍微慢一点

1
mvn -v

03安装maven成功

Linux安装NodeJs

一键安装NodeJs环境:

1
wget https://github.com/0000rookie/MyScript/releases/download/NodeJs/autoInstallNodeJs.sh | sh

下载NodeJs

我这里是使用CentOS 7

3.10.0-1160.76.1.el7.x86_64

如果你需要其他的安装包,可到Node镜像站下载:https://registry.npmmirror.com/binary.html?path=node/v16.17.0/

1
wget https://registry.npmmirror.com/-/binary/node/v16.17.0/node-v16.17.0-linux-x64.tar.gz

解压NodeJS

1
tar -zxvf node-v16.17.0-linux-x64.tar.gz

修改安装路径

我这里安装在/usr/local/node,可以根据自己的需求安装在其他路径或者和我一样也是可以的。

修改文件夹名

1
mv node-v16.17.0-linux-x64 node

配置环境变量

创建软链接,类似Window的快捷方式,如果将软链接放在/usr/local/bin,表示这个软链接是全局可用的。

创建node的软链接

1
ln -s /usr/local/node/bin/node /usr/local/bin/node

创建npm的软链接

1
ln -s /usr/local/node/bin/npm /usr/local/bin/npm

查看安装结果

1
node -v && npm -v

01结果展示

hexo全局安装没有生效

安装hexo-cli

1
npm i install hexo-cli -g

创建博客失败

hexo不生效
1
2
[root@localhost opt]# hexo init blog
bash: hexo: 未找到命令

解决办法

没有生效应该是在安装hexo-cli的时候,hexo执行文件没有创建软链接到/usr/local/bin/,既然没有,我们创建一个软链接到哪里即可。

查找是否存在hexo软链接

1
2
[root@localhost nrm]# find /usr/local/bin/hexo -name hexo
find: ‘/usr/local/bin/hexo’: 没有那个文件或目录

发现是没有这个软链接的,我们来创建一个软链接,前面这段/usr/local/node路径是你安装node的路径,根据自己情况改一下即可。

1
ln -s /usr/local/node/lib/node_modules/hexo-cli/bin/hexo /usr/local/bin/hexo

查看创建软链接结果

看到结果已经成功了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@localhost nrm]# hexo -v
hexo-cli: 4.3.0
os: linux 3.10.0-1160.76.1.el7.x86_64 CentOS Linux 7 (Core)
node: 16.17.0
v8: 9.4.146.26-node.22
uv: 1.43.0
zlib: 1.2.11
brotli: 1.0.9
ares: 1.18.1
modules: 93
nghttp2: 1.47.0
napi: 8
llhttp: 6.0.7
openssl: 1.1.1q+quic
cldr: 41.0
icu: 71.1
tz: 2022a
unicode: 14.0
ngtcp2: 0.1.0-DEV
nghttp3: 0.1.0-DEV

nrm全局安装不生效

nrm是一个npm源管理器,可以随时切换源常用指令

nrm ls # 查看全部源

nrm use xxx # 切换到xxx源

nrm安装指令
1
npm i nrm -g

nrm不生效

1
2
[root@localhost opt]# nrm -v
bash: nrm: 未找到命令

nrm不生效,大概原理和上面的hexo-cli是一样的,也是没有软链接,我们来创建一个即可

创建nrm的软链接

1
ln -s /usr/local/node/lib/node_modules/nrm/cli.js /usr/local/bin/nrm

查看效果

出现如下说明已经创建成功了

1
2
3
4
5
6
7
8
[root@localhost nrm]# nrm ls

npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/

Linux安装PHP

PHP插件库下载:https://windows.php.net/downloads/pecl/releases/

使用Docker安装PHP方式也非常简单,直接运行一下容器,配置一下nginx就可以了

拉取php-fpm容器

1
docker pull php:fpm

新建文件夹和测试文件

在运行容器前,我们新建一个文件夹来存放PHP的数据,我这里新建文件夹在/home/docker/php/html/,并且新建一个index.php文件,等会用来测试打开测试是否安装成功PHP。

1
mkdir /home/docker/php/html && echo "<?php phpinfo(); ?>" >> /home/docker/php/html/index.php

运行PHP容器

1
docker run -p 9000:9000 -d --name myphp-fpm -v /home/docker/php/html:/var/www/html php:fpm
  • -p:表示将容器端口9000映射到主机的9000端口。主机端口:容器端口
  • -d:表示再后台运行
  • --name:给容器命名
  • -v:将本地文件挂挂在到容器中、主机文件:容器文件
  • php:fpm:镜像名

我们将/home/docker/php/html挂载到PHP容器中,我们要是有PHP文件,可以丢在html这个文件夹里面,PHP就会自动解析 了。

配置Nginx

1
vim /etc/local/nginx/nginx.conf

将以下的server块配置添加到nginx.conf中。

以下的简单配置可以根据自己的端口域名改一下端口,其他可以不修改。

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
server_name localhost; #域名
# 当请求网站后缀为.php文件的时候,反向代理到php-fpm容器
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
}
  • ~ \.php$:表示所有带有php后缀的请求都使用该处理方法
  • /var/www/html:此处路径是PHP容器静态资源的路径,默认就好。

更新nginx配置

1
2
/usr/local/nginx/sbin/nginx -t  # 检查是否有语法错误,应养成更新配置前检查语法问题
/usr/local/nginx/sbin/nginx -s reload # 加载配置

预览PHP

根据自己的域名或者IP地址、端口修改URL。

1
http://192.168.2.13/index.php

PHP-8.1.11-phpinfo()20221027-975

下载源码包

因为特殊的原因,可能下载有点慢,可以在本地下载完在上传到服务器。

官方下载地址https://www.php.net/distributions/php-8.1.11.tar.gz

也可以直接在服务器下载

1
wget https://www.php.net/distributions/php-8.1.11.tar.gz

安装依赖

下面用Ubuntu演示安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sudo apt update &&
sudo apt install gcc -y &&
make &&
openssl &&
curl &&
libbz2-dev &&
libxml2-dev &&
libjpeg-dev &&
libpng-dev &&
libfreetype6-dev &&
libzip-dev &&
libssl-dev &&
libsqlite3-dev &&
libcurl4-openssl-dev &&
libgmp3-dev &&
libonig-dev &&
libreadline-dev &&
libxslt1-dev &&
libffi-dev &&
libxml2 &&
libkrb5-dev &&
libonig-dev &&
libxslt-dev

模块对应的依赖(可选择性的安装)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
sudo apt-get install -y libxml2-dev
pcre
sudo apt-get install -y libpcre3-dev
jpeg
sudo apt-get install -y libjpeg62-dev
freetype
sudo apt-get install -y libfreetype6-dev
png
sudo apt-get install -y libpng12-dev libpng3 libpnglite-dev
iconv
sudo apt-get install -y libiconv-hook-dev libiconv-hook1
mycrypt
sudo apt-get install -y libmcrypt-dev libmcrypt4
mhash
sudo apt-get install -y libmhash-dev libmhash2
openssl
sudo apt-get install -y libltdl-dev libssl-dev
curl
sudo apt-get install -y libcurl4-openssl-dev
mysql
sudo apt-get install -y libmysqlclient-dev
imagick
sudo apt-get install -y libmagickcore-dev libmagickwand-dev
readline
sudo apt-get install -y libedit-dev

sudo ln -s /usr/lib/libiconv_hook.so.1.0.0 /usr/lib/libiconv.so
sudo ln -s /usr/lib/libiconv_hook.so.1.0.0 /usr/lib/libiconv.so.1

#安装PHP扩展
sudo apt-get install -y autoconf automake m4

解压准备安装

解压完进入解压后的文件夹,准备开始编译

1
2
tar -zxvf php-8.1.11.tar.gz
cd php-8.1.11

开始编译

我这里选择PHP的权限为www用户和www用户组,你如果不需要可以删除--with-fpm-user=www --with-fpm-group=www这段。

--with-php-config--with-ctype --with-dom --with-fileinfo --with-json --with-tokenizer这段不是必须的,你可以根据自己的需求编译合适自己的模块。

1
./configure --prefix=/usr/local/php8 --with-config-file-path=/usr/local/php8/etc --with-fpm-user=www --with-fpm-group=www --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip --with-php-config --with-ctype --with-dom --with-fileinfo --with-json --with-tokenizer --enable-fpm
  • --with-config-file-path=:我指定安装路径在/usr/local/php8

安装

1
make  && make install -j 2
  • -j:表示开启2个进程

设置环境变量

给PHP、PHP-FPM添加全局变量

1
sed -i '4i export PATH=$PATH:/usr/local/php7/bin/\nexport PATH=$PATH:/usr/local/php7/sbin' /etc/profile && source /etc/profile
  • -i:在某文件插入
  • 4i:在第四行后插入内容
  • /etc/profile:被插入的文件
  • && source /etc/profile:加载环境变量

查看版本

配置好环境变量后查看版本。

1
2
php -v
pgp-fpm -v

配置PHP

刚安装的PHP是没有php.ini配置文件的,我们需要手动复制这个文件到安装目录。

进入解压后的php-8.1.11文件夹,将php.ini-*文件复制到PHP的真实安装位置,但是php.ini有两个文件,根据自己的需求选择合适的。

php.ini-development 和 php.ini-production 的区别:
php.ini-developmentphp.ini-production是系统推荐的php.ini设置参数,前者是为开发环境推荐的,允许调试、少占资源的原则,后者是为实际上线后的产品环境推荐的,禁止报错、提高性能的原则。

我这里选择php.ini-production**

1
cp ./php.ini-production /usr/local/php7/etc/php.ini

我们可以通过php --ini来查看是否配置加载php.ini

下载PHP源码

因为特殊的原因,可能下载有点慢,可以在本地下载完在上传到服务器。

官方下载地址https://www.php.net/distributions/php-8.1.11.tar.gz

也可以直接在服务器下载

1
wget https://www.php.net/distributions/php-8.1.11.tar.gz

安装依赖

通过yum安装依赖。libxml2-devel是PHP编译安装所必需的依赖包,其余的是PHP各种扩展的依赖包

1
yum -y install gcc gcc-c++ wget make libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel  libxml2  bison autoconf sqlite-devel bzip2-devel libcurl-devel libicu-devel libxslt-devel libzip-devel libtidy-devel libtidy curl dom fileinfo gd json mbstring openssl pdo_mysql tokenizer zip oniguruma-devel

安装加密模块libmcrypt

由于CentOS源煤业libmcrypt插件,直接从第三方下载,我这里提供一个蓝奏云下载,有需要自取,或者换第三方yum源下载

下载完后解压编译安装libmcrypt

1
2
3
4
tar -zxvf ./libmcrypt-2.5.8.tar.gz \
&& cd libmcrypt-2.5.8 \
&& ./configure \
&& make && make install

安装PHP

解压PHP

解压刚刚下载的PHP

1
2
tar -zxvf php-8.1.11.tar.gz
cd php-8.1.11

编译PHP

1
./configure --prefix=/usr/local/php8 --with-config-file-path=/usr/local/php8/etc --with-fpm-user=www --with-fpm-group=www --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip --with-php-config --with-ctype --with-dom --with-fileinfo --with-json --with-tokenizer --enable-fpm

编译成功会看到如下界面

1
2
3
4
5
6
7
8
9
10
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+

Thank you for using PHP.

安装PHP

1
make && make install

检验安装效果

1
2
cd /usr/local/php8/php/bin
./php --version

创建软链接

1
ln -s /usr/local/php8/bin/php /usr/local/bin/php

安装Composer

检查PHP是够正常

1
php -v

可以说出PHP的版本号即说明正常

下载安装版本

1
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"

执行安装

1
php composer-setup.php 

删除安装脚本

1
php -r "unlink('composer-setup.php');"

创建软链接

1
mv composer.phar /usr/local/bin/composer

更换源

如果你是国内的服务器,你可以更换一下PHP的源为国内的镜像源,这里更换为阿里云的镜像源

1
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
  • -g:表示设置全局配置

其他命令

查看composer全局配置命令

1
composer config -l -g

创建PHP项目

1
composer create-project --prefer-dist laravel/laravel my_site_dir "7.2.*"
  • laravel/laravel:composer 安装包的名称,表示创建一个 laravel 项目

  • my_site_dir:项目目录

  • --prefer-dist:使用压缩版

  • 7.2.*:表示要安装的 laravel 版本

升级composer版本

1
composer selfupdate

取消配置全局镜像源

1
composer config -g --unset repos.packagist

配置局部镜像源

1
composer config repo.packagist composer https://mirrors.aliyun.com/composer/

取消局部镜像源

1
composer config --unset repos.packagist

删除composer

1. 查找composer

1
whereis composer

2. 删除composer

1
rm -rf composer绝对路径

使用composer安装模块

composer安装模块和npm安装模块有点像,在项目中安装模块时都需要当前项目有一个composer.json或者composer.lock,二者必须有一个,composer.lock的优先级更高。

可能遇到的错误

No package ‘oniguruma’ found

1
2
3
4
5
6
7
8
9
10
11
checking for oniguruma... no
configure: error: Package requirements (oniguruma) were not met:

No package 'oniguruma' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

解决

这个错误提示说明你的系统缺少oniguruma软件包,而PHP编译需要使用到这个软件包。你可以通过以下步骤来安装oniguruma软件包:

  1. 检查是否已经启用了PowerTools存储库。你可以通过以下命令来检查:
1
sudo yum repolist --enablerepo=PowerTools

如果你没有启用PowerTools存储库,可以通过以下命令启用:

1
sudo yum config-manager --set-enabled PowerTools
  1. 安装oniguruma-devel软件包:
1
sudo yum install oniguruma-devel
  1. 如果你已经安装了oniguruma-devel软件包,但是仍然出现上述错误提示,可以尝试清除yum缓存:
1
2
sudo yum clean all
sudo yum makecache
  1. 如果上述步骤仍然无法解决问题,可以尝试手动创建CentOS-Linux-PowerTools.repo文件:
1
sudo vi /etc/yum.repos.d/CentOS-Linux-PowerTools.repo

在文件中添加以下内容:

1
2
3
4
5
6
7
[PowerTools]
name=CentOS-$releasever - PowerTools
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=PowerTools&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

保存并退出文件,然后再次运行安装命令。

make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

虚拟内存不足,需要增加虚拟内存,可以使用交换内存,使用存储临时代替内存。

文章参考

Linux安装PHP8

Linux安装Go语言

下载安装包

下载方式有多种,根据你喜好下载,或者在window下载好再上传到服务器也可以。

1
wget -P /opt/file/ https://dl.google.com/go/go1.19.4.linux-amd64.tar.gz
  • -P: 指定下载文件存储到/opt/file/

解压

进入/opt/file/目录

1
sudo cd /opt/file/

将Go安装包解压到/usr/local/目录下

1
sudo tar -C /usr/local/ -zxf go1.19.4.linux-amd64.tar.gz

创建环境变量

1
echo "export PATH=\$PATH:/usr/local/go/bin" >> /etc/profile

export PATH=$PATH:/usr/local/go/bin这段字符串追加到/etc/profile文件最后一行,\$PATH使用\是为了转义$字符

加载环境变量

改动环境变量必须要加载才能生效

1
source /etc/profile

测试安装是否成功

1
2
root@VM-8-9-ubuntu:/usr# go version
go version go1.19.4 linux/amd64

我这里安装的是go1.19.4版本

Linux安装数据库

CentOS安装MySQL

添加MySQL下载源

1
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm 

导入MySQL GPG密钥

1
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

安装MySQL

1
sudo yum install mysql-community-server

开启开机默认自启

安装完后,我们需要开启MySQL数据在后台启动,并且设置开机自启。

1
sudo systemctl enable mysqld

启动MySQL

设置开机自启后,MySQL还是没有启动,我们还需要启动MySQL数据库。

1
sudo systemctl start mysqld

查看MySQL状态

1
sudo systemctl status mysqld

查看MySQL密码

首次启动MySQL服务器时,将为MySQL root用户生成一个临时密码。您可以通过运行命令sudo grep 'temporary password' /var/log/mysqld.log来找到密码。

1
2
3
sudo grep 'temporary password' /var/log/mysqld.log
# 输出内容:
2023-05-13T08:47:24.913671Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: NjDds9gSMVDE

进入MySQL

1
sudo mysql -uroot -pNjDds9gSMVDE
  • -u:用户名
  • -p:密码

更改root用户密码

1
2
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误表示密码过于简单,不符合安全策略,这是MySQL8的特性,需要满足长度、含有大小写、数字、特殊字符。如7kh$E*w93LCU密码

可能遇到的错误

如果你没有使用rpm命令导入MySQL的GPG key,你将会遇到以下错误。

1
2
3
4
5
6
7
8
9
10
warning: /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-common-8.0.30-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


The GPG keys listed for the "MySQL 8.0 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.


Failing package is: mysql-community-common-8.0.30-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

Ubuntu安装MySQL

检查是否安装了MySQL

1
2
ps -aux | grep mysql
systemctl status mysql

没看到有正在运行MySQL应该是没有安装了

在线安装

安装直接在线安装

1
apt-get install mysql-server

查看运行状态

01-下载mysql-20231110-178

设置开机自启

1
systemctl enable mysql

关闭开机自启

1
systemctl disable mysql

开启、关闭、状态

1
2
3
4
5
6
7
8
# 打开 MySQL 服务
systemctl start mysql
# 重启 MySQL 服务
systemctl restart mysql
# 关闭 MySQL 服务
systemctl stop mysql
# 查看 MySQL 服务
systemctl status mysql

mysql_secure_installation

MySQL初始化安全脚本,mysql_secure_installation脚本设置的东西:更改root密码、移除MySQL的匿名用户、禁止root远程登录、删除test数据库和重新加载权限。除了询问是否要更改root密码时,看情况是否需要更改,其余的问题都可以按Y,然后ENTER接受所有后续问题的默认值。使用上面的这些选项可以提高MySQL的安全。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
root@VM-8-12-ubuntu:/home/# sudo mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

Skipping password set for root as authentication with auth_socket is used by default.
If you would like to use password authentication instead, this can be done with the "ALTER_USER" command.
See https://dev.mysql.com/doc/refman/8.0/en/alter-user.html#alter-user-password-management for more information

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

进入MySQL

刚刚没有设置密码,默认密码是root

1
sudo mysql -u root -proot

修改root用户密码

进入MySQL数据库后,切换到mysql数据库

1
use mysql;

修改密码

设置root用户的密码为YS!4sV6R&Puq

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YS!4sV6R&Puq';

刷新权限

修改完密码要刷新权限

1
FLUSH PRIVILEGES;

Ubuntu安装SQLite

Linux安装SQLite有两种方式,直接apt安装或者编译安装。

直接apt安装

1
sudo apt-get install sqlite3

编译安装

下载安装包

SQLite安装包下载:https://www.sqlite.org/download.html

Source Code部分找到sqlite-autoconf-xxx.tar.gz资源包下载到服务器

蓝奏云:

解压

1
2
tar -xvzf sqlite-autoconf-340000.tar.gz
cd sqlite-autoconf-340000

编译

1
./configure --prefix=/usr/local/sqlite

安装

1
make && make install

创建软链接

1
ln -s /usr/local/sqlite/bin/sqlite3 /usr/local/sbin/sqlite3

测试效果

在终端任意目录下输入sqlite3即可打开数据库,Ctrl + D退出终端

1
sqlite3