温馨提示×

怎样调试Debian LAMP错误

小樊
48
2026-10-13 15:49:02
栏目: 智能运维

在 Debian 上调试 LAMP(Linux + Apache + MySQL/MariaDB + PHP)错误,通常要“分层排查”。下面给你一套实用调试流程,从最常见到较深入。


一、先确认服务是否在运行

1. Apache

systemctl status apache2

如果没启动:

sudo systemctl start apache2
sudo systemctl enable apache2

查看错误:

sudo journalctl -u apache2

2. MySQL / MariaDB

systemctl status mariadb
# 或
systemctl status mysql

启动:

sudo systemctl start mariadb

查看日志:

sudo journalctl -u mariadb

二、Apache 无法访问网站

1. 查看 Apache 错误日志(最重要)

sudo tail -n 50 /var/log/apache2/error.log

常见错误:

  • Permission denied → 文件权限问题
  • DocumentRoot does not exist → 虚拟主机路径错误
  • AH00558 → 配置语法问题

2. 测试 Apache 配置

sudo apache2ctl configtest

3. 检查虚拟主机

ls /etc/apache2/sites-enabled/

示例测试:

curl -I http://localhost

三、PHP 不解析(显示源码或下载)

1. 确认 PHP 模块已安装

dpkg -l | grep php

Debian 常见:

sudo apt install php libapache2-mod-php

启用模块:

sudo a2enmod php8.2
sudo systemctl restart apache2

2. 测试 PHP

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

浏览器访问:

http://localhost/info.php

如果看到源码 → PHP 没生效


四、MySQL / PHP 连接失败

1. PHP 连不上数据库

常见错误:

  • Access denied for user
  • Unknown database

测试连接:

mysql -u root -p

2. PHP 扩展是否安装

php -m | grep mysqli
php -m | grep pdo

安装:

sudo apt install php-mysql
sudo systemctl restart apache2

五、权限问题(非常常见)

网站目录权限

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

SELinux?

Debian 默认 不用 SELinux(用 AppArmor,一般不拦 Web)


六、开启 PHP 错误显示(调试用)

编辑:

sudo nano /etc/php/8.2/apache2/php.ini

修改:

display_errors = On
error_reporting = E_ALL

重启 Apache:

sudo systemctl restart apache2

⚠️ 生产环境要关掉


七、防火墙问题

sudo ufw status

允许 HTTP:

sudo ufw allow 80
sudo ufw allow 443

八、快速排查清单(总结)

✅ Apache 是否运行
✅ PHP 模块是否启用
✅ error.log 有无报错
✅ 文件权限是否正确
✅ 数据库用户权限
✅ 防火墙是否放行


如果你愿意,可以把具体错误信息(终端或浏览器报错)贴出来,我可以直接帮你定位是哪一层的问题。

0 踩