Ubuntu16.04下Nginx未使用PHP7.2的配置问题求助
你遇到的这个情况很典型——命令行的PHP CLI版本和Nginx调用的PHP-FPM是完全独立的服务,升级PHP后必须让Nginx配置指向新的PHP7.2-FPM,同时重启相关服务才能生效。下面是具体的操作步骤:
1. 确认PHP7.2-FPM的套接字路径
Ubuntu系统中,不同PHP版本的FPM套接字默认存放在/run/php/目录下。先通过命令查看该目录内容:
ls -l /run/php/
正常情况下,你会看到php7.2-fpm.sock这个文件,这就是PHP7.2-FPM的套接字路径。
2. 修改Nginx站点配置
找到你的Nginx站点配置文件(通常在/etc/nginx/sites-available/目录下,比如默认的default文件,或者你自定义的站点配置),定位到处理PHP请求的location ~ \.php$代码块。
你会看到类似这样的配置行:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
把它修改为指向PHP7.2的套接字:
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
如果你的Nginx配置用的是端口而非套接字(比如127.0.0.1:9000),可以打开/etc/php/7.2/fpm/pool.d/www.conf文件,查看listen字段的值,再把Nginx里的fastcgi_pass改成对应的端口即可。
3. 验证Nginx配置语法
修改完成后,先检查配置语法是否正确,避免重启Nginx时出错:
sudo nginx -t
如果输出nginx: configuration file /etc/nginx/nginx.conf test is successful,说明配置没问题。
4. 重启相关服务
先停止旧版本的PHP-FPM,再启动新版本的服务,最后重启Nginx:
sudo systemctl stop php7.0-fpm sudo systemctl start php7.2-fpm sudo systemctl restart nginx
如果需要让PHP7.2-FPM开机自动启动,可以执行:
sudo systemctl enable php7.2-fpm
5. 验证结果
现在刷新浏览器中的phpinfo()页面,应该就能看到PHP7.2的版本信息了。如果仍然显示旧版本,可以检查PHP7.2-FPM的运行状态:
sudo systemctl status php7.2-fpm
确保服务处于active (running)状态。
内容的提问来源于stack exchange,提问作者bhattraideb

