在 Debian 上“调试 LNMP”(Linux + Nginx + MySQL/MariaDB + PHP)通常指排查 访问不了、502、PHP 不执行、数据库连不上、性能异常 等问题。下面按「排查思路 + 常用命令 + 典型故障」给你一套实用调试方法。
systemctl status nginx
systemctl status php-fpm # 或 php8.2-fpm
systemctl status mariadb # 或 mysql
看是否 active (running)
ss -lntp
正常应看到:
/run/php/)nginx -t
tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
fastcgi_pass 路径错误(sock 或 127.0.0.1:9000)index 没配置示例 PHP 站点配置:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
php -v
php -m | grep mysql
tail -f /var/log/php8.2-fpm.log
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
浏览器访问 http://IP/info.php
session.save_path 无权限open_basedir 限制php-mysql / php-fpmmysql -u root -p
tail -f /var/log/mysql/error.log
GRANT ALL ON db.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
127.0.0.1 而不是 localhost(socket 问题)Debian 默认 无 SELinux,但可能有 AppArmor
ls -ld /var/www
ps aux | grep nginx
Nginx/PHP 用户通常是 www-data
修复权限:
chown -R www-data:www-data /var/www
chmod -R 755 /var/www
top
htop
df -h
free -m
ss -antp
iptables -L
ufw status
| 现象 | 可能原因 |
|---|---|
| 502 | php-fpm 未运行 |
| 空白页 | PHP 报错被关 |
| 连不上 DB | 权限 / host |
| 很慢 | SQL 慢查询 |
| 重启失效 | 配置写错 |
php.ini:
display_errors = On
error_reporting = E_ALL
如果你愿意,可以把:
发出来,我可以帮你精准定位。