PHP-FPM启动失败_php配置错误与进程问题解决
网站启动错误是服务器运维常见问题,Nginx/Apache/MySQL/PHP-FPM启动失败、启动超时、重启后无法访问、502/503、白屏、数据库连接失败、端口占用、权限错误、配置错误、模块缺失、磁盘满、内存不足、SSL错误、伪静态错误、防火墙、SELinux等各种启动问题导致网站无法访问。本文系统讲解网站启动相关的各种错误排查和解决方法,帮助运维人员快速定位和解决启动问题,确保网站稳定运行。
网站启动502/503/白屏/数据库连接失败排查。502 Bad Gateway启动后:1.PHP-FPM没启动——service php-fpm status,没启动就启动,启动失败看PHP-FPM错误日志。2.PHP-FPM进程数不够——pm.max_children太小,并发请求超过上限,502。解决:调大pm.max_children(根据内存),看php-fpm日志(WARNING: server reached pm.max_children)。3.Nginx fastcgi_pass配置错——fastcgi_pass指向的PHP-FPM地址/端口/socket不对(如127.0.0.1:9000但PHP-FPM用socket)。解决:检查PHP-FPM listen配置(www.conf),Nginx fastcgi_pass对应(127.0.0.1:9000或unix:/run/php-fpm.sock)。4.fastcgi_read_timeout太短——大请求(备份/导入)超时,调大fastcgi_read_timeout 300。5.PHP-FPM崩溃——PHP代码致命错误/内存耗尽导致PHP-FPM进程崩溃,看PHP错误日志,修复代码/调大memory_limit。503 Service Unavailable启动后:1.服务器过载——CPU/内存/带宽满,无法响应,top/free/df看资源,优化程序/升级配置/限流。2.维护模式——网站开启了维护模式(返回503),关闭维护。3.后端服务不可用——PHP-FPM/MySQL/缓存服务停,启动服务。4.WAF/限流——WAF/限流插件拦截(误判攻击),临时关闭测试/调规则。5.云服务器故障——物理机故障/迁移,联系云服务商。启动白屏:1.PHP致命错误——语法错/内存耗尽/调用未定义函数,display_errors=Off时白屏。解决:临时开错误显示(error_reporting(E_ALL);ini_set('display_errors',1);),看PHP错误日志,修复。2.BOM头——PHP文件UTF-8 BOM导致输出/session错,编辑器转无BOM。3.数据库连接失败——配置错/服务停,连接失败但错误被抑制(@),白屏。解决:检查数据库配置+服务状态。4.缓存损坏——模板编译缓存/数据缓存损坏,删除缓存目录(runtime/cache)。5.输出被抑制——代码中exit/die在内容前,或ob_start缓冲被清。启动数据库连接失败:1.启动顺序——Web服务器启动了但MySQL还没启动(启动慢/崩溃),等MySQL启动或设依赖(systemd After=mysql.service)。2.MySQL没启动——service mysql status,启动失败看MySQL错误日志(见MySQL启动失败专题)。3.配置错误——config.php数据库地址/库名/用户名/密码错(搬服务器后没改),核对配置。4.权限/连接数——数据库用户权限不足/连接数满,授权/调大max_connections。5.socket/端口——MySQL socket路径错/端口没监听,检查my.cnf,netstat看3306。启动错误排查要结合多个日志(Nginx/Apache错误日志+PHP错误日志+MySQL错误日志+系统日志/var/log/messages),交叉验证定位根因。
用户真实体验:「服务器重启后网站502,查了是PHP-FPM没设开机自启,systemctl enable php-fpm就好了,重启后服务没启动是常见坑」「启动白屏,开了display_errors看到是PHP语法错误(漏了分号),修复就好,白屏90%是PHP错误,开错误显示就能看到」。
操作提示:网站启动错误排查流程——1.看错误信息(systemctl status nginx/mysql看启动状态和错误,journalctl -u服务名看详细日志);2.测试配置(nginx -t测Nginx,apachectl configtest测Apache,php -m测PHP模块,mysqld --verbose --help测MySQL配置);3.看错误日志(Nginx /var/log/nginx/error.log,Apache /var/log/httpd/error_log,MySQL /var/log/mysql/error.log,PHP /var/log/php/或runtime/log,系统 /var/log/messages或/var/log/syslog);4.检查端口占用(netstat -tlnp | grep 端口,ss -tlnp,lsof -i:端口);5.检查权限/属主(文件644/目录755,Nginx/Apache属主www-data/apache,MySQL数据目录属主mysql,PHP-FPM user/group和Web一致);6.检查系统资源(df -h磁盘,free -h内存,top CPU,ulimit -n文件句柄);7.检查依赖服务(启动顺序,MySQL在Web前,systemd After=)。常见启动错误速查:Nginx启动失败=配置语法错(nginx -t)/端口占用/权限/SSL证书;Apache启动失败=配置语法错/端口占用/模块错/虚拟主机冲突;MySQL启动失败=配置错/数据目录权限/磁盘满/内存不足/端口占用/数据损坏(innodb_force_recovery)/socket错;PHP-FPM启动失败=php.ini语法错/user-group错/端口socket占用/内存不足/扩展缺失;宝塔启动失败=服务没启/端口占/磁盘满/内存不足/面板文件损坏;重启后无法访问=开机自启没设/挂载丢失/防火墙重置/配置丢失;502=PHP-FPM没启/进程不够/fastcgi配置错/超时;503=过载/维护/后端不可用/WAF;白屏=PHP致命错误/BOM/数据库连接失败/缓存损坏。

更新时间:2026-08-27 00:44:39