在 Debian 上搭建/使用 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境时,排错一般按分层排查的思路来。下面给你一套实用排错流程,适合新手到中等水平。
systemctl status apache2
systemctl status mariadb # 或 mysql
不正常时启动:
systemctl start apache2
systemctl start mariadb
设置开机自启:
systemctl enable apache2 mariadb
403 Forbidden
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
apache2ctl configtest
404 Not Found
/var/www/htmlDocumentRoot 配置正确tail -f /var/log/apache2/error.log
ls /etc/apache2/sites-enabled/
apache2ctl -S
确认模块已启用:
a2enmod php8.2 # 按实际版本
systemctl restart apache2
测试 PHP:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
浏览器访问 http://IP/info.php
编辑:
vim /etc/php/8.2/apache2/php.ini
display_errors = On
error_reporting = E_ALL
重启 Apache。
mysql -u root -p
失败常见原因:
unix_socket 认证重置 root 密码(MariaDB):
systemctl stop mariadb
mysqld_safe --skip-grant-tables &
mysql
检查:
mysqli_connect("localhost","user","pass","db");
常见错误:
ufw allow 80
ufw allow 443
ufw status
云服务器还要检查安全组。
apache2ctl configtest
journalctl -xe
tail -f /var/log/apache2/error.log
tail -f /var/log/mysql/error.log
如果你愿意,可以把具体报错信息或现象(比如“访问显示 500”、“PHP 不执行”)发出来,我可以帮你精确分析。