centos环境为最干净的初始环境
1.查询当前centos版本
cat /etc/redhat-release
2.下载要安装的php版本包:https://www.php.net/downloads.php
3.在/home下新建文件夹mw/app/
mkdir /home/mw/app
mkdir /home/mw/app/php
chmod -R 0777 /home/mw/app
4.上传php安装包到/home/mw/app目录下
5. 解压php安装包
tar -xzvf php-7.3.33.tar.gz
6.安装php依赖
sudo yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn openssl openssl-devel
centos平台编译环境使用如下指令
安装make:
yum -y install gcc automake autoconf libtool make
安装g++:
yum install gcc gcc-c++
7.新增用户和用户组
groupadd www
useradd -g www www
8.查询lnmp生产环境目前编译了什么文件:
/usr/local/php/bin/php -i | grep configure
9. 进入/home/mw/app/php-7.3.33 下,开始编译安装
在/home/mw/app/ 下新建文件夹,freetype,预编译使用。
mkdir /home/mw/app freetype
cd php-7.3.33
./configure --prefix=/home/mw/app/php --with-config-file-path=/home/mw/app/php/etc --with-config-file-scan-dir=/home/mw/app/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/home/mw/app/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --without-libzip --enable-soap --with-gettext --enable-opcache --with-xsl
10. 编译报错,缺少ICU
checking for location of ICU headers and libraries... checking for icu-config... no
not found
configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
yum install libicu-devel
11.继续预编译:预编译成功,继续安装:
12.执行编译安装
make && make install
13.安装编译完成
14.配置php文件
sudo cp /home/mw/app/php-7.3.33/php.ini-production /home/mw/app/php/etc/php.ini
15.设置php-fpm配置文件
cd /home/mw/app/php/etc
sudo cp php-fpm.conf.default php-fpm.conf
cd /home/mw/app/php/etc/php-fpm.d
sudo cp www.conf.default www.conf
16./home/mw/app/php/etc/php-fpm.conf
的内容进行如下修改
pid= /home/mw/app/php/var/run/php-fpm.pid
17./home/mw/app/php/etc/php-fpm.d/www.conf
的内容进行如下修改
[www]
listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 60
pm.start_servers = 30
pm.min_spare_servers = 30
pm.max_spare_servers = 60
pm.max_requests = 1024
pm.process_idle_timeout = 10s
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
18.启动php-fpm
sudo /home/mw/app/php/sbin/php-fpm
启动后,使用命令
ps aux | grep php-fpm
命令查看进程,若能够看到相关进程,则证明启动成功。查询进程时,可以看到进程是以www用户身份执行的
19.加入系统环境变量:使用vim
命令打开/etc/profile
文件,在文件最末尾加上如下代码:
export PHP_HOME=/home/mw/app/php
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin
保存修改后,使用source
命令重新加载配置文件,命令如下
source /etc/profile
执行上述命令后,可使用echo $PATH
命令查看环境变量中是否已经加入了相关的路径
20.把php-fpm添加到服务
重启php-fpm
ps aux | grep php-fpm
kill -USR2 pid
21. 找到 /home/mw/app/php-7.3.33/sapi/fpm/init.d.php-fpm文件
cp init.d.php-fpm /etc/init.d/php-fpm 将该文件复制到 /etc/init.d 目录下并改名为 php-fpm
22.赋予脚本可执行命令,添加开机自启动
chmod +x /etc/init.d/php-fpm //给于可执行权限
chkconfig --add php-fpm //把php-fpm添加到服务
chkconfig php-fpm on //设置开机自启
23.测试指令
service php-fpm start
service php-fpm stop
service php-fpm restart
24.重启服务器验证:
shutdown -r now
25. 杀死php-fpm所有进程:
ps -ef|grep php-fpm|awk -F ' ' '{print $2}'|xargs kill -9