温馨提示×

debian lamp怎么排错

小樊
50
2026-10-16 11:39:39
栏目: 智能运维

在 Debian 上搭建/使用 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境时,排错一般按分层排查的思路来。下面给你一套实用排错流程,适合新手到中等水平。


一、先确认基础服务状态

1. 查看服务是否运行

systemctl status apache2
systemctl status mariadb   # 或 mysql

不正常时启动:

systemctl start apache2
systemctl start mariadb

设置开机自启:

systemctl enable apache2 mariadb

二、Apache 排错

2. 网页打不开 / 403 / 404

  • 403 Forbidden

    • 目录权限问题:
      chown -R www-data:www-data /var/www/html
      chmod -R 755 /var/www/html
      
    • 检查 Apache 配置:
      apache2ctl configtest
      
  • 404 Not Found

    • 确认文件在 /var/www/html
    • 确认 DocumentRoot 配置正确

3. 查看 Apache 错误日志

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

4. 虚拟主机问题

ls /etc/apache2/sites-enabled/
apache2ctl -S

三、PHP 排错

5. PHP 不解析(页面源码直接显示)

确认模块已启用:

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

测试 PHP:

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

浏览器访问 http://IP/info.php

6. PHP 错误不显示

编辑:

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

重启 Apache。


四、MySQL / MariaDB 排错

7. 无法登录数据库

mysql -u root -p

失败常见原因:

  • 密码错误
  • 使用 unix_socket 认证

重置 root 密码(MariaDB):

systemctl stop mariadb
mysqld_safe --skip-grant-tables &
mysql

8. PHP 连不上数据库

检查:

mysqli_connect("localhost","user","pass","db");

常见错误:

  • 用户无远程/localhost权限
  • 数据库未创建

五、防火墙 & 端口

9. 外部访问不了

ufw allow 80
ufw allow 443
ufw status

云服务器还要检查安全组。


六、快速自检清单 ✅

  • [ ] Apache 正常运行
  • [ ] PHP 模块启用
  • [ ] 文件权限正确
  • [ ] 数据库服务启动
  • [ ] 防火墙放行
  • [ ] 错误日志在查

七、常见命令汇总

apache2ctl configtest
journalctl -xe
tail -f /var/log/apache2/error.log
tail -f /var/log/mysql/error.log

如果你愿意,可以把具体报错信息或现象(比如“访问显示 500”、“PHP 不执行”)发出来,我可以帮你精确分析。

0 踩