Nginx、MySQL(MariaDB)、PHP-FPM是LNMP的核心组件,启动失败是常见问题。
nginx -t检查配置文件语法(如/etc/nginx/nginx.conf或站点配置文件),修复错误后重启;查看/var/log/nginx/error.log获取详细错误信息(如端口冲突、权限不足)。php-fpm -t验证配置文件(如/usr/local/php/etc/php-fpm.conf或/etc/php-fpm.d/www.conf);查看/var/log/php-fpm.log(或/var/log/php7-fpm.log)定位问题(如用户/组配置错误、端口被占用)。/var/log/mysqld.log(或MariaDB的/var/log/mysql.log),常见原因包括数据目录权限问题、配置文件语法错误(如innodb_buffer_pool_size设置超过系统内存)。systemctl status 服务名查看服务状态,journalctl -xe查看系统日志,确认系统资源(内存、CPU)是否充足。此错误通常因Nginx无法连接到PHP-FPM进程导致。
listen参数(如unix:/var/run/php-fpm/php-fpm.sock或127.0.0.1:9000),确保Nginx的fastcgi_pass指向一致(如fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;)。systemctl status php-fpm),若未启动则执行systemctl start php-fpm。/var/run/php-fpm/目录权限(通常为nginx:nginx),并确保Nginx用户(如nginx)有权限访问socket文件。/var/www/html)及文件的权限正确(目录chmod 755,文件chmod 644),所有者为Nginx运行的用户(如chown -R nginx:nginx /var/www/html)。/var/log/php-fpm/www-error.log)和Nginx错误日志(/var/log/nginx/error.log),常见原因包括php.ini中cgi.fix_pathinfo=0未设置(需关闭路径信息猜测)、扩展模块缺失(如fileinfo)。/etc/my.cnf(或MariaDB的/etc/mysql/my.cnf)中的bind-address为0.0.0.0,然后执行mysql -u root -p登录,运行GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码'; FLUSH PRIVILEGES;授权远程访问。systemctl stop mysqld),以安全模式启动(mysqld_safe --skip-grant-tables &),登录后执行ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';重置密码,重启服务。firewalld,需开放HTTP(80)和HTTPS(443)端口:firewall-cmd --permanent --zone=public --add-service=http; firewall-cmd --permanent --zone=public --add-service=https; firewall-cmd --reload。Enforcing模式,可能阻止Nginx或PHP-FPM访问文件。临时设置为Permissive模式(setenforce 0)测试,若问题解决,可修改/etc/selinux/config中的SELINUX=permissive永久生效,或通过setsebool -P httpd_can_network_connect_db 1允许Nginx连接数据库。某些PHP应用(如NextCloud、WordPress)需要特定扩展(如fileinfo、imagick、opcache)。
yum安装(如yum install php-fileinfo php-imagick php-opcache),或通过LNMP一键环境的addons.sh脚本安装(如./addons.sh install fileinfo)。/usr/local/php/conf.d/(如004-opcache.ini),修改对应配置(如opcache.enable=1);对于旧版本,需手动编辑php.ini(如extension="fileinfo.so"),然后重启PHP-FPM。Nginx或PHP-FPM的配置文件语法错误会导致服务无法启动。
nginx -t命令测试配置文件语法,若报错,根据提示定位错误位置(如/etc/nginx/nginx.conf第X行),修复后执行nginx -s reload重新加载。php-fpm -t验证配置文件(如/etc/php-fpm.d/www.conf),常见错误包括user/group设置无效、listen地址格式错误,修复后重启PHP-FPM。pm.max_children(子进程数量,建议为CPU核心数的2-4倍)、pm.start_servers(启动时的子进程数),避免进程过多导致内存耗尽。innodb_buffer_pool_size为服务器总内存的50%-80%(如16GB内存设置为8GB-12GB),提升数据库读写性能。gzip压缩(gzip on;)、静态文件缓存(location ~* \.(jpg|jpeg|png)$ { expires 30d; }),减少服务器负载。