温馨提示×

Debian LAMP为何启动失败

小樊
41
2026-07-30 07:54:20
栏目: 智能运维

Debian 上 LAMP(Linux + Apache + MySQL/MariaDB + PHP)启动失败 通常不是单一原因,而是 Apache / MariaDB / PHP 配置或依赖 出了问题。下面按最常见原因 → 排查方法 → 解决办法给你一个系统性的排查清单。


一、先确认是哪一部分没启动

1️⃣ 检查 Apache 是否启动

systemctl status apache2

常见状态:

  • failed
  • inactive (dead)
  • active (running)

2️⃣ 检查 MariaDB / MySQL 是否启动

systemctl status mariadb
# 或
systemctl status mysql

3️⃣ 检查 PHP 是否加载

php -v
apache2ctl -M | grep php

二、Apache 启动失败(最常见)

❌ 1. 端口被占用(80 / 443)

ss -lntp | grep :80

如果看到 nginx / 其他程序:

systemctl stop nginx

或修改 Apache 端口:

/etc/apache2/ports.conf

❌ 2. 配置文件语法错误

apache2ctl configtest

常见错误:

  • Syntax error
  • Invalid command
  • SSLCertificateFile not found

✅ 修复后:

systemctl restart apache2

❌ 3. 虚拟主机配置错误

ls /etc/apache2/sites-enabled/

临时排查:

a2dissite 000-default.conf
systemctl restart apache2

❌ 4. 模块冲突

apache2ctl -M

禁用可疑模块:

a2dismod mpm_event
a2enmod mpm_prefork

三、MariaDB / MySQL 启动失败

❌ 1. 数据目录权限错误

ls -ld /var/lib/mysql

修复:

chown -R mysql:mysql /var/lib/mysql

❌ 2. 磁盘空间不足

df -h

❌ 3. 配置文件错误

mysqld --verbose --help | grep my.cnf

检查:

/etc/mysql/my.cnf
/etc/mysql/mariadb.conf.d/

❌ 4. 日志查看(非常重要)

journalctl -xe
cat /var/log/mysql/error.log

四、PHP 问题(Apache 不解析 PHP)

❌ 1. 未安装 PHP Apache 模块

apt install libapache2-mod-php

启用:

a2enmod php8.x
systemctl restart apache2

❌ 2. PHP 与 Apache 不兼容

Debian 12 常见问题:

  • Apache 使用 mpm_event
  • PHP 必须用 mpm_prefork
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.x

五、防火墙 / SELinux(较少见)

防火墙

ufw status
ufw allow 80/tcp

SELinux(Debian 默认关闭)

getenforce

六、快速定位“真正原因”的黄金命令 ✅

systemctl status apache2
systemctl status mariadb
apache2ctl configtest
journalctl -xe

七、你可以直接这样问我(更快解决)

如果你愿意,把下面信息贴出来,我可以直接帮你定位

systemctl status apache2
systemctl status mariadb
apache2ctl configtest
cat /var/log/apache2/error.log | tail -20

或者告诉我:

  • Debian 版本(11 / 12)
  • 使用的是 Apache + MariaDB 还是 MySQL
  • 刚装完启动失败 还是 之前正常突然失败

我可以一步一步带你修好 ✅

0