温馨提示×

debian lnmp常见错误有哪些

小樊
45
2026-09-07 20:45:11
栏目: 智能运维

在 Debian 上搭建 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)环境时,新手和运维常会遇到一些典型问题。下面按组件分类总结常见错误、原因和解决办法。


一、Nginx 常见错误

1. Nginx 无法启动(端口被占用)

现象

Job for nginx.service failed.

原因

  • 80 端口被 Apache 占用
  • 之前 Nginx 未正常关闭

解决

sudo netstat -tunlp | grep :80
sudo apt remove apache2
sudo systemctl restart nginx

2. 403 Forbidden

原因

  • 网站目录权限不对
  • index 文件缺失
  • Nginx 用户无权访问

解决

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

并确保有:

index index.php index.html;

3. 404 / 伪静态不生效

原因

  • location 配置错误
  • 未开启 try_files

解决

location / {
    try_files $uri $uri/ /index.php?$args;
}

二、PHP 常见错误

4. Nginx 下载 PHP 文件而不是直接执行

原因

  • 未安装 php-fpm
  • fastcgi 配置缺失

解决

sudo apt install php-fpm

Nginx 中需有:

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

5. 502 Bad Gateway

原因

  • php-fpm 未运行
  • sock 文件路径不一致

解决

systemctl status php*-fpm

确认:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;

6. PHP 扩展缺失

现象

Class 'PDO' not found

解决

sudo apt install php-mysql php-curl php-gd php-mbstring

三、MySQL / MariaDB 常见错误

7. 无法登录 MySQL

原因

  • Debian 默认使用 unix_socket
  • 密码方式不对

解决

sudo mysql -u root

或修改认证方式:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

8. PHP 连不上数据库

原因

  • host 写错(应写 localhost 而非 127.0.0.1
  • 未安装 php-mysql

9. 数据库服务启动失败

原因

  • /var/lib/mysql 权限错误
  • 磁盘空间不足
df -h
chown -R mysql:mysql /var/lib/mysql

四、权限与防火墙问题

10. 上传文件失败 / 写不了目录

解决

chown -R www-data:www-data 站点目录

11. 外网无法访问

检查

ufw allow 80,443/tcp

云服务器还需放行安全组。


五、常见综合坑

问题 说明
PHP 版本不一致 Nginx 用 php8.2,实际装 php7.4
配置文件未软链 sites-enabled 没生效
改配置未 reload nginx -s reload
时间不对 timedatectl set-timezone Asia/Shanghai

如果你愿意,可以告诉我:

  • Debian 版本(11 / 12)
  • Nginx / PHP / MySQL 版本
  • 具体报错信息

我可以直接帮你定位并给针对性配置

0