在 Debian 下 LAMP(Linux + Apache + MySQL/MariaDB + PHP)无法启动,通常不是单一原因,而是 Apache / MariaDB / PHP 配置、端口冲突、权限或日志错误 导致的。下面按 最常见原因 → 排查方法 → 解决方案 给你一个系统性的排查指南。
systemctl status apache2
常见状态:
active (running) ✅failed ❌inactive (dead) ❌尝试启动:
sudo systemctl start apache2
systemctl status mariadb
或
systemctl status mysql
php -v
如果 Apache 启动但 PHP 不解析,通常是 PHP 模块未启用。
AH00072: make_sock: could not bind to address [::]:80
sudo ss -tulnp | grep :80
sudo systemctl stop nginx
或 修改 Apache 端口
sudo nano /etc/apache2/ports.conf
Listen 8080
然后:
sudo systemctl restart apache2
sudo apache2ctl configtest
VirtualHost 重复ServerNamesudo apache2ctl -t
修复错误后:
sudo systemctl restart apache2
sudo journalctl -xe
或
sudo cat /var/log/mysql/error.log
/var/lib/mysql 权限错误sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl restart mariadb
ls /etc/apache2/mods-available/ | grep php
sudo apt install libapache2-mod-php8.2
sudo a2enmod php8.2
sudo systemctl restart apache2
测试:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问:
http://服务器IP/info.php
sudo ufw status
sudo ufw allow 80
sudo ufw allow 443
sudo aa-status
sudo systemctl stop apparmor
sudo systemctl restart apache2
systemctl status apache2
systemctl status mariadb
apache2ctl configtest
journalctl -xe
ss -tulnp | grep :80
如果你愿意,把下面内容贴出来(可打码 IP):
systemctl status apache2
systemctl status mariadb
apache2ctl configtest
✅ 我可以 直接告诉你哪一行错了、怎么改
✅ 可区分是 Apache / MySQL / PHP / 网络 / 权限 问题