Ubuntu 上 LAMP(Linux + Apache + MySQL/MariaDB + PHP)启动失败 的原因很多,下面按常见原因 → 排查方法 → 解决办法给你一个系统性的排查清单。
现象
systemctl status apache2
报错类似:
Address already in use: AH00072: make_sock: could not bind to address [::]:80
排查
sudo netstat -tulnp | grep :80
或
sudo ss -tulnp | grep :80
解决
sudo systemctl stop nginx
sudo nano /etc/apache2/ports.conf
现象
sudo apache2ctl configtest
报错:
Syntax error on line XX of /etc/apache2/...
解决
</VirtualHost>例如同时启用 php7.x 和 php8.x
解决
sudo a2dismod php7.4
sudo a2enmod php8.1
sudo systemctl restart apache2
现象
systemctl status mysql
报错:
Can't find file: './mysql/user.frm'
解决
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl restart mysql
df -h
如果 / 或 /var 满了,数据库会直接起不来。
sudo mysqld --verbose --help
或查看:
/var/log/mysql/error.log
sudo a2enmod php8.1
sudo systemctl restart apache2
LAMP 中:
libapache2-mod-phpphp确认:
php -v
apache2ctl -M | grep php
sudo systemctl status apache2
sudo systemctl status mysql
sudo journalctl -xe
查看关键日志:
/var/log/apache2/error.log
/var/log/mysql/error.log
你可以直接把下面内容贴出来:
systemctl status apache2 / mysql 的输出我可以一步一步帮你定位 ✅