调试 Debian 上的 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 环境,通常需要从 系统状态 → Nginx → PHP → 数据库 → 应用日志 逐层排查。下面给你一套实用调试流程。
systemctl status nginx
systemctl status php-fpm # 或 php8.2-fpm
systemctl status mariadb # 或 mysql
如果没启动:
systemctl start nginx php8.2-fpm mariadb
systemctl enable nginx php8.2-fpm mariadb
nginx -t
tail -f /var/log/nginx/error.log
常见错误:
permission denied → 文件权限问题connect() failed (111: Connection refused) → PHP-FPM 没跑File not found → root 或 fastcgi 路径不对curl -I http://localhost
ps aux | grep php-fpm
检查监听方式(sock 或端口):
grep listen /etc/php/8.2/fpm/pool.d/www.conf
常见:
listen = /run/php/php8.2-fpm.sock
创建测试文件:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
如果下载文件 → Nginx 没解析 PHP
如果 502 → PHP-FPM 没运行或 sock 权限错误
tail -f /var/log/php8.2-fpm.log
mysql -u root -p
如果报错:
Access denied → 用户权限问题Can't connect → 服务没启动tail -f /var/log/mysql/error.log
<?php
$conn = new mysqli("localhost", "user", "pass", "db");
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "OK";
?>
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
ls -l /run/php/php8.2-fpm.sock
应为:
srw-rw---- www-data www-data
ufw status
确保 80 / 443 开放:
ufw allow 80
ufw allow 443
| 现象 | 可能原因 |
|---|---|
| 502 Bad Gateway | PHP-FPM 未启动 / sock 错误 |
| 403 Forbidden | 目录无 index / 权限错误 |
| 404 | root 路径不对 |
| 白屏 | PHP 报错但 display_errors 关 |
| 数据库连接失败 | 账号 / host / 防火墙 |
你可以告诉我:
我可以直接帮你读日志、改配置、写 Nginx 站点示例。