PHP网站打不开通常因PHP-FPM未运行、nginx转发配置错误或根目录权限/路径问题;需依次检查PHP-FPM服务状态与日志、nginx fastcgi_pass与root配置是否匹配、网站目录属主是否为www且权限合理。

宝塔面板里 PHP 网站打不开,大概率不是 PHP 本身挂了,而是 PHP-FPM 进程没起来、nginx 配置没生效、或 网站根目录权限/路径 错了——先别急着重装,按顺序查这三块基本能定位 90% 的问题。
PHP-FPM 服务是否在运行?
很多“打不开”其实是 php-fpm 根本没启动,或者启动失败后自动退出。宝塔界面上显示“运行中”,但实际进程已崩,很常见。
- 进宝塔 → 软件商店 → 找到你用的 PHP 版本(比如 PHP-7.4)→ 点击“设置” → 看“服务管理”里
php-fpm是否为绿色“正在运行”;如果不是,点“启动”并观察是否秒退 - 如果启动失败,点“日志”看最后一行错误,典型如:
ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use,说明端口被占,得查netstat -tuln | grep :9000 - 也可能是配置文件语法错误:宝塔的 PHP 配置路径是
/www/server/php/{版本号}/etc/php-fpm.conf,改过就用php-fpm -t -c /www/server/php/74/etc/php-fpm.conf测试语法
nginx 是否正确转发到 PHP-FPM?
即使 php-fpm 活着,nginx 若没配好 fastcgi_pass 或 root 路径错,照样 502 或 404。
- 进宝塔 → 网站 → 对应站点 → “配置文件”,确认里面有没有类似这段:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; # 或 unix:/tmp/php-cgi-74.sock
fastcgi_index index.php;
include fastcgi.conf;
}注意:fastcgi_pass 的地址必须和你当前 PHP 版本的 listen 值一致(查 /www/server/php/74/etc/php-fpm.d/www.conf 里的 listen = 行)
立即学习“PHP免费学习笔记(深入)”;
- 检查
root指向是否真实存在且可读:比如配置写的是root /www/wwwroot/my-site;,但实际目录是/www/wwwroot/my_site(下划线 vs 中划线),就会 403 或 404 - 修改完配置务必点“保存”,再点“重载配置”,不能只点“重启 nginx”——重载才真正让新规则生效
网站文件权限与用户组是否匹配?
宝塔默认用 www 用户跑 php-fpm 和 nginx,如果网站目录属主是 root 或权限是 700,PHP 就读不了文件,表现常为 502 或空白页(无报错)。
- 进终端执行:
ls -ld /www/wwwroot/your-site,确认输出里有www或www-data;若显示root root,运行:chown -R www:www /www/wwwroot/your-site - 检查关键文件是否可读:
ls -l /www/wwwroot/your-site/index.php,权限至少是-rw-r--r--(644),目录至少是drwxr-xr-x(755) - 如果开了“防跨站”,还要确认该站点的
open_basedir设置没误拦:宝塔 → PHP 设置 → “禁用函数”旁的“防跨站开放”,关掉试试;或手动检查php.ini里open_basedir是否包含你的网站路径
最易被忽略的一点:改完任何配置(尤其是 PHP-FPM 的 listen 或 user/group),必须同步更新 nginx 的 fastcgi_pass 和对应 PHP 版本的服务状态——两头不一致,就是典型的“看着都绿,实际不通”。











