PHP 7.4安装宝塔后网站无法解析,首要原因是PHP-FPM进程未真实运行,需通过systemctl status php-fpm-74验证状态;其次检查php-fpm.log定位unable to bind socket等错误;再严格比对Nginx fastcgi_pass与php-fpm.d/www.conf中listen地址是否一致;最后确认网站目录属主为www、权限644,并确保redis等关键扩展已加载。

PHP 7.4安装宝塔面板后网站无法解析,说明Nginx已收到请求但未将.php文件交由PHP-FPM处理,常见表现为访问PHP文件直接下载、返回502 Bad Gateway或空白页,而非执行输出结果。
确认PHP-FPM进程是否真实运行
宝塔面板显示“PHP-7.4 已启动”不等于php-fpm进程在跑,必须验证实际状态。执行:systemctl status php-fpm-74,若显示 inactive (dead) 或 failed,说明服务根本没起来。
查看错误日志定位原因:tail -n 30 /www/server/php/74/var/log/php-fpm.log,重点找 unable to bind socket(端口或socket被占)、failed to load configuration file(配置路径错)或 Permission denied(权限不足)。
常见坑:重装后残留旧pid文件,导致新进程无法绑定监听地址。手动清理:rm -f /www/server/php/74/var/run/php-fpm.pid,再重启服务。
立即学习“PHP免费学习笔记(深入)”;
核对Nginx fastcgi_pass与PHP-FPM listen地址是否严格一致
这是502最常踩的雷——两边地址对不上,Nginx拼命转发,PHP-FPM根本不听。
方法一:查PHP-FPM实际监听方式
打开 /www/server/php/74/etc/php-fpm.d/www.conf,找到 listen = 行:
若为 listen = /tmp/php-cgi-74.sock,则Nginx配置中 fastcgi_pass 必须写成 unix:/tmp/php-cgi-74.sock;
若为 listen = 127.0.0.1:9000,则Nginx必须写成 fastcgi_pass 127.0.0.1:9000。
方法二:进宝塔→网站→对应站点→配置文件,搜索 fastcgi_pass,确认其值与上面查到的 listen 完全匹配,版本号(74)和路径分隔符(unix:/ 或 127.0.0.1:)一个字符都不能错。
改完务必执行 nginx -t 校验语法,成功后再 systemctl reload nginx,仅点面板“重载配置”可能无效。
检查网站根目录权限与用户组
第一步:确认网站目录属主是 www 用户:ls -ld /www/wwwroot/your-site,输出中第二、三列应为 www www。
第二步:若属主不是www,立即修正:chown -R www:www /www/wwwroot/your-site。
第三步:检查关键文件可读性:ls -l /www/wwwroot/your-site/index.php,权限至少为 -rw-r--r--(644)。若为600或更严,PHP进程读不到,直接报502或空白。
注意:不要用chmod 777硬解,只改属主+设644即可,过度放权会触发宝塔安全拦截。
验证PHP扩展是否加载成功
PHP-FPM启动失败常因扩展模块缺失。执行:php -v 看是否报错;再执行:php -m | grep -E "(redis|mysqli|pdo_mysql|mbstring)",确认ThinkPHP或项目依赖的核心扩展已启用。
若报 PHP Warning: PHP Startup: Unable to load dynamic library 'redis.so',说明该扩展so文件路径失效或底层库缺失。进宝塔→软件商店→PHP-7.4→设置→安装扩展,重新勾选并安装对应模块。
最后一步:重启PHP-FPM服务:systemctl restart php-fpm-74,观察是否成功启动且无报错。



















