在Ubuntu上解决PHP-FPM连接失败的问题,可以按照以下步骤进行排查和修复:
首先,确保PHP-FPM服务正在运行:
sudo systemctl status php-fpm
如果服务未运行,启动它:
sudo systemctl start php-fpm
确保PHP-FPM配置文件(通常是/etc/php/版本号/fpm/pool.d/www.conf
)中的监听地址和端口设置正确。例如:
listen = /run/php/php7.4-fpm.sock
或者如果是TCP/IP监听:
listen = 127.0.0.1:9000
确保Nginx或Apache的配置文件中正确设置了PHP-FPM的监听地址和端口。
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 或者 fastcgi_pass 127.0.0.1:9000;
}
}
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
确保PHP-FPM进程有权限访问监听的socket文件或端口。
sudo chown www-data:www-data /run/php/php7.4-fpm.sock
确保防火墙允许该端口的流量:
sudo ufw allow 9000/tcp
查看PHP-FPM和Nginx/Apache的日志文件,以获取更多错误信息。
sudo tail -f /var/log/php7.4-fpm.log
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/apache2/error.log
在修改配置文件后,重启相关服务以应用更改:
sudo systemctl restart php-fpm
sudo systemctl restart nginx # 或者 sudo systemctl restart apache2
通过以上步骤,你应该能够解决PHP-FPM连接失败的问题。如果问题仍然存在,请提供更多的错误信息和配置细节,以便进一步诊断。