我的知识记录

网站启动失败_服务器启动错误排查与解决方法

网站启动错误是服务器运维常见问题,Nginx/Apache/MySQL/PHP-FPM启动失败、启动超时、重启后无法访问、502/503、白屏、数据库连接失败、端口占用、权限错误、配置错误、模块缺失、磁盘满、内存不足、SSL错误、伪静态错误、防火墙、SELinux等各种启动问题导致网站无法访问。本文系统讲解网站启动相关的各种错误排查和解决方法,帮助运维人员快速定位和解决启动问题,确保网站稳定运行。

Apache/PHP-FPM/宝塔启动失败排查。Apache启动失败:1.配置语法错误——httpd.conf语法错,apachectl configtest测试,看错误行号修复。2.端口占用——80/443被Nginx/其他程序占用,netstat查,停占用或改端口。3.模块错误——LoadModule加载了不存在/损坏的模块(.so文件),注释掉对应LoadModule。4.虚拟主机冲突——多个VirtualHost重复ServerName。5.权限错误——DocumentRoot目录权限(755)、属主(apache/www-data)。6.SSL证书错误——证书路径/匹配问题,同Nginx。PHP-FPM启动失败:1.php.ini语法错误——漏分号/参数错,php -m看模块,php -i看配置,修复php.ini。2.权限错误——php-fpm.conf/www.conf中user/group不对(应和Web服务器用户一致,如www-data/nginx),日志目录/run目录权限错。解决:检查user/group,chown对应目录。3.端口/socket占用——listen=127.0.0.1:9000端口被占,或socket文件/run/php-fpm.sock权限错。解决:netstat查端口,改端口或socket路径,chmod socket目录。4.内存不足——pm.max_children设置太大,内存不足OOM。解决:free -h看内存,调小pm.max_children(每个进程约20-50M,max_children=可用内存/单进程内存),或加内存。5.扩展缺失/冲突——php.ini加载了不存在的扩展(.so),或扩展版本不兼容。解决:php -m看模块,注释掉问题扩展extension=xxx.so,重新安装对应版本扩展。6.配置文件include错误——include=etc/php-fpm.d/*.conf包含了错误的配置文件。宝塔面板启动失败:1.面板服务没启动——/etc/init.d/bt start启动,或service bt restart。2.端口被占——面板默认8888端口被占,netstat查,改面板端口(/www/server/panel/data/port.pl)。3.磁盘满——/www目录满,面板无法写入,df -h清理。4.内存不足——面板依赖的MySQL/Nginx/PHP启动失败,free -h看内存。5.面板文件损坏——升级/异常中断导致面板文件损坏,修复面板(curl安装修复脚本,或bt命令修复)。6.Python依赖问题——宝塔基于Python,依赖缺失/版本错,重新安装依赖。排查:bt命令(SSH输入bt看菜单,选1重启面板,选14查看面板错误),看面板日志(/www/server/panel/logs/error.log)。网站重启后无法访问:1.服务没设开机自启——重启后Nginx/MySQL/PHP-FPM没启动,systemctl enable nginx/mysqld/php-fpm设开机启动,或宝塔面板→软件管理→开机启动。2.配置丢失——重启后配置文件被还原(用了错误的配置管理/容器没持久化),检查配置文件是否持久化。3.挂载丢失——数据目录/网站目录在单独分区,重启后没挂载(/etc/fstab没配置),df -h看挂载,配置fstab自动挂载。4.防火墙重置——重启后防火墙规则重置(iptables没保存),开放端口(宝塔面板→安全,或firewall-cmd/iptables保存)。5.SELinux重置——SELinux上下文重置,导致权限问题,restorecon -Rv恢复上下文。启动错误排查通用原则:看错误日志(最详细)→测试配置(nginx -t/apachectl configtest/php -m)→检查端口占用→检查权限/属主→检查系统资源(磁盘/内存)→检查依赖服务(启动顺序,MySQL要在Web前启动)。

运维反馈:「Nginx启动失败,nginx -t一看是配置文件漏了分号,修复就好了,启动失败先测试配置+看错误信息,基本能定位」「MySQL启动失败看错误日志,发现是数据目录属主不对(被人改成root了),chown mysql:mysql就启动了,权限问题很常见」。

操作提示:网站启动错误排查流程——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-26 23:43:12

上一篇:UTF-8搜索GBK_urlencode与数据库字符集

下一篇:网站低危漏洞通过URL重写规则屏蔽攻击路径_配置方法_虚拟主机无需改代码