温馨提示×

Debian LNMP出错怎么办

小樊
67
2026-07-02 04:21:11
栏目: 智能运维

在 Debian 上搭建 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 时出错很常见,排查思路基本是分层定位。下面我按最常见错误场景 → 排查方法 → 解决办法给你一个实用指南。


一、先确认你卡在哪一层

LNMP 每一层都可能出错:

常见表现
Nginx 403 / 502 / 网站打不开
PHP 页面空白 / PHP 不解析
MySQL/MariaDB 连不上数据库
系统 服务起不来 / 端口冲突

二、Nginx 常见问题

1️⃣ Nginx 无法启动

sudo systemctl status nginx

常见原因:

  • 80 端口被占用
  • 配置文件语法错误

检查:

sudo nginx -t
ss -lntp | grep :80

解决:

sudo apt install nginx -y
sudo systemctl restart nginx

2️⃣ 403 Forbidden

原因:

  • 网站目录权限不对
  • index 文件不存在

检查:

ls -l /var/www/html

修复权限(常见规范):

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

3️⃣ 502 Bad Gateway

原因:

  • PHP-FPM 没启动
  • Nginx 和 PHP-FPM sock 路径不一致

检查:

systemctl status php-fpm
# 或
systemctl status php8.x-fpm

Nginx 配置示例(关键):

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

三、PHP 常见问题

1️⃣ PHP 不解析(直接下载文件)

原因:

  • Nginx 没加载 PHP
  • fastcgi_pass 错误

✅ 必须安装:

sudo apt install php-fpm php-mysql

2️⃣ PHP 报错但看不到

sudo vi /etc/php/8.2/fpm/php.ini

设置:

display_errors = On
log_errors = On

重启:

sudo systemctl restart php8.2-fpm

四、MySQL / MariaDB 问题

1️⃣ 数据库启动失败

sudo systemctl status mariadb

常见原因:

  • 磁盘空间满
  • 配置错误

修复:

sudo journalctl -xe
sudo dpkg --configure -a

2️⃣ PHP 连不上数据库

确认服务在运行:

ss -lntp | grep 3306

确认 PHP 扩展:

php -m | grep mysql

✅ 没装就装:

sudo apt install php-mysql

五、调试神器(强烈推荐)

查看实时错误日志

# Nginx
sudo tail -f /var/log/nginx/error.log

# PHP
sudo tail -f /var/log/php8.2-fpm.log

# MariaDB
sudo tail -f /var/log/mysql/error.log

六、推荐最小可跑配置(Debian 12)

sudo apt update
sudo apt install nginx mariadb-server php-fpm php-mysql

测试 PHP:

echo "<?php phpinfo();" | sudo tee /var/www/html/info.php

访问:

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

七、如果你愿意,我可以进一步帮你

你可以直接把 错误信息贴出来,例如:

  • systemctl status nginx 输出
  • 浏览器提示的 HTTP 状态码
  • /var/log/nginx/error.log 报错

我可以 精确到哪一行配置错了

0