温馨提示×

怎样调试debian lamp

小樊
35
2026-09-20 02:18:01
栏目: 智能运维

在 Debian 上调试 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境,通常需要分层排查:系统 → Apache → PHP → 数据库。下面给你一套实用调试流程。


一、基础检查

1. 服务状态

systemctl status apache2
systemctl status mariadb   # 或 mysql

启动/重启:

systemctl start apache2
systemctl restart apache2

二、Apache 调试

2. 查看 Apache 错误日志

tail -f /var/log/apache2/error.log

常见错误:

  • Permission denied → 文件/目录权限问题
  • DocumentRoot must be a directory → 路径错误

3. 检查配置语法

apache2ctl configtest

4. 虚拟主机调试

确认站点已启用:

ls /etc/apache2/sites-enabled/

测试配置文件:

apache2ctl -S

三、PHP 调试

5. 确认 PHP 已安装并启用

php -v
ls /etc/apache2/mods-enabled/ | grep php

如未启用:

a2enmod php8.2   # 根据实际版本
systemctl restart apache2

6. 测试 PHP 是否解析

创建测试文件:

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

浏览器访问:

http://服务器IP/info.php

如果看到源码 → PHP 未解析

7. 打开 PHP 错误显示(调试用)

编辑:

/etc/php/8.2/apache2/php.ini
display_errors = On
error_reporting = E_ALL

重启 Apache。


四、MySQL / MariaDB 调试

8. 登录数据库

mysql -u root -p

若无法登录:

systemctl status mariadb
journalctl -u mariadb

9. PHP 连接数据库测试

<?php
$conn = new mysqli("localhost", "user", "pass", "db");
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "数据库连接成功";
?>

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

10. 网站目录权限

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

11. SELinux(Debian 默认无)

Debian 一般不用 SELinux,但确认:

getenforce

六、防火墙 & 端口

12. 端口监听

ss -tunlp | grep ':80'

13. 防火墙

ufw status

允许 HTTP:

ufw allow 80

七、快速排查清单(排错顺序)

  1. Apache 是否运行?
  2. 能否访问静态 HTML?
  3. PHP 是否解析?
  4. 数据库能否连接?
  5. 日志里有什么错误?
  6. 权限是否正确?

如果你愿意,可以告诉我:

  • Debian 版本
  • Apache / PHP / MySQL 版本
  • 具体报错信息或现象

我可以直接帮你定位问题。

0