0. 开发环境
- 操作系统:CentOS Linux release 7.9.2009 (Core)
1. 下载安装包
[root@iZ2zehdkhnyvzixuie7bzhZ tmp] pwd
/application/tmp/
[root@iZ2zehdkhnyvzixuie7bzhZ tmp] wget --no-check-certificate https://www.php.net/distributions/php-8.1.21.tar.gz
[root@iZ2zehdkhnyvzixuie7bzhZ tmp] ls
php-8.1.21.tar.gz
2. 安装依赖程序
[root@iZ2zehdkhnyvzixuie7bzhZ tmp] yum install gcc gcc++ libxml2-devel openssl-devel curl-devel readline-devel sqlite-devel
如果安装
oniguruma5php
和oniguruma5php-devel
时发现链接不可用,可以在https://rpms.remirepo.net/enterprise/7/remi/x86_64/
页面下找到可用的链接替换掉下面的链接。
[root@iZ2zehdkhnyvzixuie7bzhZ tmp] yum -y install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-6.9.8-1.el7.remi.x86_64.rpm
[root@iZ2zehdkhnyvzixuie7bzhZ tmp] yum -y install https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-devel-6.9.8-1.el7.remi.x86_64.rpm
3. 编译安装
[root@iZ2zehdkhnyvzixuie7bzhZ tmp] tar -zxvf php-8.1.21.tar.gz
[root@iZ2zehdkhnyvzixuie7bzhZ tmp] cd php-8.1.21
[root@iZ2zehdkhnyvzixuie7bzhZ php-8.1.21] ./configure --prefix=/application/php/8.1/ \
--enable-fpm \
--with-mysqli=shared,mysqlnd \
--enable-mysqlnd \
--with-pdo-mysql \
--with-pdo-mysql=mysqlnd \
--enable-bcmath \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-mbstring \
--enable-phpdbg \
--enable-shmop \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-zlib \
--with-curl \
--with-pear \
--with-openssl \
--enable-pcntl \
--with-readline
[root@iZ2zehdkhnyvzixuie7bzhZ php-8.1.21] make && make install
4. 初始化配置文件
[root@iZ2zehdkhnyvzixuie7bzhZ php-8.1.21] cp /application/tmp/php-8.1.21/php.ini-development /application/php/8.1/lib/php.ini
[root@iZ2zehdkhnyvzixuie7bzhZ php-8.1.21] cp /application/php/8.1/etc/php-fpm.d/www.conf.default /application/php/8.1/etc/php-fpm.d/www.conf
[root@iZ2zehdkhnyvzixuie7bzhZ php-8.1.21] cp /application/php/8.1/etc/php-fpm.conf.default /application/php/8.1/etc/php-fpm.conf
5. 调整配置
防止Nginx将文件不存在的请求,发送到后端的PHP-FPM模块,这样可以避免恶意脚本注入的攻击:
在 /application/php/8.1/lib/php.ini
配置文件中找到 cgi.fix_pathinfo
配置项 ,然后设置为 0
。
cgi.fix_pathinfo=0
设置php-fpm模块使用的用户和用户组
在 /application/php/8.1/etc/php-fpm.d/www.conf
配置文件中找到 user
和 group
配置项,都设置为 www-data
。
user = www-data
group = www-data
6. 添加用户和用户组
[root@iZ2zehdkhnyvzixuie7bzhZ php-8.1.21] groupadd www-data
[root@iZ2zehdkhnyvzixuie7bzhZ php-8.1.21] useradd -g www-data www-data
7. 修改环境变量
在 /etc/profile
文件尾部加入以下配置项:
PATH=$PATH:/application/php/8.1/bin:/application/php/8.1/sbin
export PATH
生效配置:
[root@iZ2zehdkhnyvzixuie7bzhZ php-8.1.21] source /etc/profile
8. 设置 PHP-FPM 设置为开机自启
创建 systemctl
服务管理的配置文件。
cat > /etc/systemd/system/php8.1-fpm.service