一、系统版本兼容性要求
LNMP架构在CentOS上的部署需优先满足系统版本的基础要求。CentOS 5、6、8及更早版本已停止官方支持,无法直接使用默认仓库安装最新组件(如MySQL 8.0、PHP 8.1),需手动更换vault或archive源(如CentOS Vault);CentOS 7及以上版本(如7.0、7.5、7.9)是主流兼容版本,支持通过官方或第三方仓库安装稳定组件。
二、组件版本匹配问题
mysqlnd、mysqli、PDO_MySQL)连接MySQL。例如,PHP 7.2+兼容MySQL 5.7+和MariaDB 10.3+,PHP 5.6仅兼容MySQL 5.5+和MariaDB 10.0+;若版本不匹配,可能出现“Call to undefined function mysql_connect()”等错误。三、依赖库与服务冲突
yum install命令补充(如yum install gcc make libxml2-devel openssl-devel -y);若依赖库缺失,会导致编译失败(如“configure: error: libxml2 not found”)。firewall-cmd --add-port=80/tcp --permanent);若端口被占用,可通过netstat -tulnp | grep 端口号排查并修改配置文件(如Nginx的listen指令、MySQL的port参数)。setsebool -P httpd_execmem 1)或临时关闭SELinux(setenforce 0),生产环境建议保留SELinux但配置正确策略。四、配置文件适配问题
listen指令,注释掉IPv6地址(如#listen [::]:80;),避免因系统未启用IPv6导致的启动错误;同时需配置fastcgi_pass指向PHP-FPM socket(如fastcgi_pass unix:/var/run/php-fpm/www.sock;),确保Nginx能正确转发PHP请求。/etc/php-fpm.d/www.conf中的user和group为Nginx运行的用户(通常为nginx),并设置listen.owner和listen.group为nginx(如listen.owner = nginx、listen.group = nginx),确保PHP-FPM进程能被Nginx访问;若权限设置错误,会导致“connect() to unix:/var/run/php-fpm/www.sock failed”错误。mysql57-community-release-el7-7.noarch.rpm),并通过yum install mysql-community-server安装;同时需修改root密码(符合复杂度要求,如包含大写字母、数字、特殊符号),并授权远程访问(grant all privileges on *.* to root@"%" identified by '密码';)。五、常见问题及解决方法
fastcgi_pass路径错误、Nginx用户无权限访问PHP-FPM socket。解决方法:检查PHP-FPM服务状态(systemctl status php-fpm),确认fastcgi_pass指向正确socket文件,修改socket文件权限(chown nginx:nginx /var/run/php-fpm/www.sock)。my.cnf中innodb_buffer_pool_size设置过大)。解决方法:检查系统内存(free -m),确认端口未被占用(netstat -tulnp | grep 3306),备份并修改my.cnf配置文件。mbstring、gd),会导致网站功能异常(如无法上传图片、无法解析中文)。解决方法:通过yum install php-mbstring php-gd -y安装对应模块,重启PHP-FPM(systemctl restart php-fpm)和Nginx(systemctl restart nginx)。