参考链接 -- https://www.howtoforge.com/tutorial/how-to-install-php-7-on-debian/
1. 从php.net下载并解压缩PHP并解压缩tar.bz2文件:
mkdir -p /opt/php-7.2
mkdir /usr/local/src/php7.2-build
cd /usr/local/src/php7.2-build
wget http://de2.php.net/get/php- 7.2.2.tar.bz2 / from / this / mirror -O php-7.2.2.tar.bz2
tar jxf php-7.2.2.tar.bz2
cd php-7.2.2 /
2. 按如下方式配置和构建PHP 7.2(您可以根据需要调整./configure命令,看看
./configure --help
3. 查看所有可用选项; 如果使用不同的./configure命令,则可能需要其他库,否则构建过程将失败):
./configure --prefix=/opt/php-7.2 --with-config-file-path=/usr/local/php/etc --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=/usr/local/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-pcntl --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl --with-iconv=/usr/local/libiconv
注: 如果出现libiconv不存在请google自行解决
4. 最后一个开关(--enable-fpm)确保这个PHP版本可以与PHP-FPM一起使用。
make
make test
make install
5. 将php.ini和php-fpm.conf复制到正确的位置:
cp /usr/local/src/php7.2-build/php-7.2.2/php.ini-production /opt/php-7.2/lib/php.ini
cp /opt/php-7.2/etc/php-fpm.conf.default /opt/php-7.2/etc/php-fpm.conf
cp /opt/php-7.2/etc/php-fpm.d/www.conf.default /opt/php-7.2/etc/php-fpm.d/www.conf
6. 打开/opt/php-7.2/etc/php-fpm.conf并调整以下设置(删除;在pid行前面):
nano /opt/php-7.2/etc/php-fpm.conf
[...]
pid = run/php-fpm.pid
[...]
7. 然后打开/opt/php-7.2/etc/php-fpm.d/www.conf 并调整 listen 线,你必须使用一个未使用的端口(例如 8998 ;端口 9000 可能已被Debian的默认PHP-FPM使用) :
nano /opt/php-7.2/etc/php-fpm.d/www.conf
[...]
listen = 127.0.0.1:8998
[...]
8. 接下来,我们将创建用于启动和停止PHP-FPM守护程序的系统单元文件。
nano /lib/systemd/system/php-7.2-fpm.service
# 输入一下内容
[Unit]
Description=The PHP 7.2 FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/opt/php-7.2/var/run/php-fpm.pid
ExecStart=/opt/php-7.2/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.2/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
9. 启用服务并重新加载systemd:
systemctl enable php-7.2-fpm.service
systemctl daemon-reload
10. 最后,启动PHP-FPM。
systemctl start php-7.2-fpm.service
11. 修改nginx配置
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#更改前
#fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
#更改后
fastcgi_pass 127.0.0.1:8998
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}