诊断Linux PHP-FPM问题可以通过以下几个步骤进行:
systemctl
命令查看服务的状态:sudo systemctl status php7.0-fpm
如果服务未运行,会显示类似“inactive (dead)”的信息。
pgrep
命令查找PHP-FPM的进程:pgrep php7.0-fpm
如果PHP-FPM未运行,这条命令不会列出任何进程号。
netstat
或 ss
命令确认PHP-FPM是否正在监听正确的套接字或端口:netstat -plnt | grep php7.0-fpm
或者针对Unix套接字:
ls -l /var/run/php/php7.0-fpm.sock
http://localhost/status_page
这里的 /status_page
对应配置文件中 pm.status_path
设置的路径。
less +F /var/log/php7.0-fpm.log
根据具体配置定位日志文件的位置。
strace
进行调试:
安装 strace
并使用它来跟踪PHP-FPM进程:sudo apt install strace
strace -f -ff -t -d -p <PHP-FPM进程ID>
检查配置文件:
确认PHP-FPM的配置文件(通常位于 /etc/php/X.X/fpm/pool.d/www.conf
)是否有错误,例如监听地址、端口配置等。
重启PHP-FPM服务: 如果服务未启动或配置有变,可以使用以下命令重启PHP-FPM服务:
sudo systemctl restart php7.0-fpm
若想让它开机自动启动,可以执行:
sudo systemctl enable php7.0-fpm
如果问题依然存在,建议查看具体的错误日志文件,以便进一步分析问题所在。