我用的是LNMP。
首先要确保php安装正常,然后php跟wordpress版本要兼容,还有nginx运行正常,并且php-fpm运行也正常。
我解决的过程没有截图记录,所以只能尽量还原过程。
本文只是提供一个解决问题的思路,可以检查来排除一下。
我是因为安装的php版本太低,不支持安装的wordpress,所以又重新安装了一次php,然后配置方面就出了问题导致了502.
话不多说。
首先在/etc/下找到php-fpm.d/目录,通常,php-fpm.d
目录下会有一个名为 www.conf
的文件,这个文件用于配置 PHP-FPM 的池和监听设置,打开看看
在这个文件中,检查 listen
选项,确认 PHP-FPM 是如何监听请求的。它可能是 Unix 套接字(如 /tmp/php-cgi.sock
)或 TCP 套接字(如 127.0.0.1:9000
)。
cat /etc/php-fpm.d/www.conf
这说明PHP-FPM 将通过 TCP 端口 9000 来监听请求。这是一个常见的配置,通常与 Nginx 配合使用,Nginx 会将请求转发到 PHP-FPM 的这个端口上。
然后现在去看看Nginx的配置,找到nginx.conf文件,确保 Nginx 配置文件中,fastcgi_pass
配置项指向正确的地址和端口,即 127.0.0.1:9000
。
一般在Nginx目录下的conf里面可以找到类似配置:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
}
不过我的没有,我的是下面这样的
这里没有明显的listen配置,所以又找到了enable-php.conf文件
find / -name enable-php.conf
打开后就可以看到:
这行配置告诉 Nginx 使用 Unix Socket(/tmp/php-cgi.sock)来与 PHP-FPM 进行通信。
通常,Unix Socket 会比 TCP 更高效,因此在同一台机器上运行 PHP-FPM 和 Nginx 时推荐使用 Unix Socket。 确保你的 PHP-FPM 配置中也使用了相应的 Unix Socket。
可以检查 /etc/php-fpm.d/www.conf 或类似路径下的 listen = /tmp/php-cgi.sock 配置。
总之就是把上面两个配置改成相同的就行了
然后重启一下Nginx,或者php-fpm
(但是我的全改成Unix Socket又502了,我也不知道为什么,改回去TCP又行了)