Ubuntu LNMP常见问题与排查要点
一 服务无法启动或端口冲突
sudo systemctl status nginx mysql php7.4-fpm(按实际 PHP 版本调整)。sudo nginx -t。sudo netstat -tulnp | grep ':80\|:9000'。sudo tail -f /var/log/nginx/error.log、/var/log/php7.4-fpm.log、/var/log/mysql/error.log。sudo systemctl restart nginx php7.4-fpm。二 网站访问异常 白屏 502 504
php.ini 中开启:display_errors = Off、log_errors = On、error_log = /var/log/php_errors.log,重启 PHP-FPM 并查看日志。sudo systemctl status php7.4-fpm。unix:/run/php/php7.4-fpm.sock,则 Nginx 中应使用 fastcgi_pass unix:/run/php/php7.4-fpm.sock;,并确保 SCRIPT_FILENAME $document_root$fastcgi_script_name; 正确。三 数据库连接与权限问题
sudo systemctl status mysql,查看错误日志:/var/log/mysql/error.log。sudo ufw status,必要时放行:sudo ufw allow 'Nginx Full'(或放行 3306 的来源网段)。caching_sha2_password 无法加载。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';。四 文件权限与路径配置错误
www-data:www-data,权限 755/644。index index.php index.html; 配置正确。$document_root$fastcgi_script_name;,否则会出现空白页或 404。五 环境与系统层面的坑
mysql -u root -p 'password'。df -h、free -m、top/htop,避免因磁盘满或内存不足导致异常。dmesg、/var/log/syslog 可帮助定位内核与系统级问题。fastcgi_pass 必须一致(socket 或 127.0.0.1:9000 二选一),并注意 PHP 版本路径差异(如 /var/log/php7.4-fpm.log 或 /var/log/php-fpm/error.log)。