Debian 上 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 报错的原因很多,需要先定位具体错误。下面我按 常见报错场景 → 排查方法 → 解决方案 的结构给你一个通用解决思路,你可以对照使用;如果还不行,把具体报错信息贴出来我可以精准帮你分析。
sudo systemctl status apache2
常见错误:
failed to startAddress already in use查看详细错误:
sudo journalctl -xe
sudo apache2ctl configtest
✅ 常见解决:
sudo netstat -tlnp | grep :80
sudo systemctl restart apache2
sudo systemctl status mariadb
常见错误:
Job for mariadb.service failedAccess denied for user 'root'@'localhost'查看日志:
sudo tail -n 50 /var/log/mysql/error.log
✅ 常见解决:
sudo dpkg --configure -a
sudo apt install -f
sudo systemctl restart mariadb
php -v
测试 Apache 是否支持 PHP:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
✅ 若空白页:
sudo apt install libapache2-mod-php
sudo systemctl restart apache2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name
✅ 解决:
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
sudo a2enconf servername
sudo systemctl restart apache2
✅ 解决:
sudo apt install libapache2-mod-php
sudo a2enmod php
sudo systemctl restart apache2
You don't have permission to access this resource.
✅ 原因 & 解决:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
Access denied for user 'root'@'localhost'
✅ 重置 root 密码:
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables &
mysql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
✅ 推荐安装命令:
sudo apt update
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
| 检查项 | 命令 |
|---|---|
| Apache 是否运行 | systemctl status apache2 |
| MySQL 是否运行 | systemctl status mariadb |
| PHP 是否加载 | php -v |
| 配置文件语法 | apache2ctl configtest |
| 查看系统日志 | journalctl -xe |
你可以直接贴出:
cat /etc/os-release)例如:
Debian 12,安装 LAMP 后访问 php 页面 403 Forbidden
或
Job for apache2.service failed
我可以一步步帮你排查 ✅