温馨提示×

ubuntu lnmp为何启动失败

小樊
45
2026-09-19 04:45:46
栏目: 智能运维

Ubuntu 上 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)启动失败 的原因很多,需要逐步排查。下面我按最常见原因 → 排查方法 → 解决思路给你一个系统性的指南。


一、先确认是哪一部分启动失败

LNMP 是组合服务,先分清是:

  • Nginx 起不来
  • MySQL/MariaDB 起不来
  • PHP-FPM 起不来
  • 三者都起不来
systemctl status nginx
systemctl status mysql
systemctl status php-fpm

(Ubuntu 20.04+ 通常是 php8.1-fpmphp-fpm


二、Nginx 启动失败(最常见)

1️⃣ 端口被占用(80 / 443)

sudo netstat -tunlp | grep ':80'

常见冲突:

  • Apache(apache2
  • 其他 Nginx
  • Docker 容器

解决:

sudo systemctl stop apache2
sudo systemctl disable apache2

2️⃣ 配置文件语法错误

sudo nginx -t

常见错误:

  • server_name 写错
  • fastcgi_pass 路径不对
  • root 目录不存在

根据提示修改 /etc/nginx/


3️⃣ 权限问题

网站目录权限不对:

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

三、MySQL / MariaDB 启动失败

1️⃣ 查看错误日志(最重要)

sudo journalctl -xe
sudo cat /var/log/mysql/error.log

2️⃣ 常见原因

✅ 磁盘空间满了

df -h

✅ 权限错误

sudo chown -R mysql:mysql /var/lib/mysql

✅ 之前异常关机导致表损坏

sudo mysqlcheck --all-databases --auto-repair

✅ 配置文件错误

sudo mysqld --verbose --help

四、PHP-FPM 启动失败

1️⃣ 查看状态

systemctl status php8.1-fpm

2️⃣ 常见错误

  • www.conflisten 路径不存在
  • Nginx 中 fastcgi_pass 和 PHP-FPM 不匹配

示例正确配置:

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

五、SELinux / 防火墙(Ubuntu 一般不是主因)

Ubuntu 默认用 ufw

sudo ufw allow 'Nginx Full'
sudo ufw status

六、一键 LNMP 脚本用户特别注意

如果你用的是 lnmp.org 一键包

lnmp status
lnmp restart

常见失败原因:

  • 编译没完成
  • 内存不足(<1G 容易挂)
  • 升级后配置未同步

七、快速自检清单 ✅

nginx -t
systemctl status nginx mysql php-fpm
df -h
journalctl -xe

八、如果你愿意,我可以直接帮你定位

你可以贴出:

  1. Ubuntu 版本
  2. 使用的 LNMP 方式(源码 / 包 / 一键脚本)
  3. 报错信息(重点:journalctlnginx -t 输出)

我可以一步一步帮你精确修好。

0