CentOS LAMP环境冲突解决方法
CentOS默认仓库的软件版本可能较旧(如PHP 5.4),无法满足现代Web应用需求。需通过第三方仓库(如EPEL、Remi)安装更新版本:
yum install epel-release -yyum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -yyum-config-manager --enable remi-php74yum install httpd mariadb-server php php-mysqlnd php-fpm -yApache需加载正确的PHP模块才能解析PHP文件,若加载旧版模块(如libphp5.so)会导致解析失败。
/etc/httpd/conf.d/php-fpm.conf中添加:LoadModule php7_module modules/libphp7.so
AddHandler php7-script .php
httpd -M | grep php,若未加载则重启Apache:systemctl restart httpd。Apache(默认80/443)、MySQL(默认3306)、PHP-FPM(默认9000)的端口可能被其他服务占用。
netstat -tulnp | grep ':80\|:3306\|:9000'/etc/httpd/conf/httpd.conf,修改Listen指令;/etc/my.cnf,修改port参数;/etc/php-fpm.d/www.conf,修改listen参数(如改为/run/php-fpm/php-fpm.sock)。systemctl restart httpd mariadb php-fpm。SELinux可能阻止Apache访问PHP文件或MySQL端口,导致服务异常。
setenforce 0(若问题消失,说明是SELinux导致);/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,重启系统;chcon -R -t httpd_sys_rw_content_t /var/www/html;允许MySQL网络连接:setsebool -P mysqld_port_t 1。安装LAMP组件时,可能因依赖包缺失导致失败(如httpd-devel缺失)。
yum自动解决依赖:yum install httpd mariadb-server php php-mysql php-fpm -y(yum会自动安装依赖);yum remove 冲突包名,再重新安装。Apache、MySQL的配置文件语法错误会导致服务无法启动。
apachectl configtest(显示“Syntax OK”则无错误);--validate-config参数(systemctl restart mysqld --validate-config);/etc/httpd/conf/httpd.conf),修改后重启服务。Apache无法访问Web目录(如/var/www/html)或PHP文件,导致403 Forbidden错误。
chown -R apache:apache /var/www/html(Apache用户为apache);chmod -R 755 /var/www/html;chmod 644 /var/www/html/*.php。