现象:安装Apache、MySQL或PHP时,提示“缺少依赖库”或“无法找到软件包”(如httpd-devel、mysql-devel)。
解决方法:
yum自动解决依赖:运行sudo yum install -y httpd mariadb-server php php-mysqlnd(CentOS 7/8通用),yum会自动安装所需依赖。sudo yum install -y gcc make autoconf libtool pkgconfig openssl-devel pcre-devel zlib-devel。现象:Apache/MySQL服务无法启动,提示“端口被占用”或“配置文件语法错误”。
解决方法:
sudo netstat -tulnp | grep ':80'(Apache)或sudo netstat -tulnp | grep ':3306'(MySQL),找出占用端口的进程(如PID),用sudo kill -9 PID终止该进程。sudo apachectl configtest,根据输出修正/etc/httpd/conf/httpd.conf中的语法错误(如ServerName未配置,可改为ServerName localhost)。/etc/my.cnf(或/etc/mysql/my.cnf)中的socket路径是否正确(默认/var/lib/mysql/mysql.sock),并确认数据目录权限(chown -R mysql:mysql /var/lib/mysql)。sudo systemctl start httpd && sudo systemctl enable httpd;sudo systemctl start mariadb && sudo systemctl enable mariadb。现象:浏览器无法访问服务器IP(如http://服务器IP),提示“无法连接”或“拒绝访问”。
解决方法:
firewalld:运行sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --permanent --add-service=https,然后sudo firewall-cmd --reload。iptables:运行sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT,保存规则(sudo service iptables save)。sudo setenforce 0。/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled。现象:浏览器访问.php文件时,下载文件而非解析执行,或提示“502 Bad Gateway”。
解决方法:
/etc/httpd/conf/httpd.conf),添加以下内容:LoadModule php_module modules/libphp.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
sudo systemctl restart httpd。/var/www/html下创建phpinfo.php,内容为<?php phpinfo(); ?>,访问http://服务器IP/phpinfo.php,若显示PHP信息页面则配置成功。现象:PHP代码连接MySQL时提示“无法连接到本地MySQL服务器”(localhost)或“Access denied for user”(远程连接)。
解决方法:
/etc/my.cnf,确保[mysqld]和[client]部分的socket路径一致(如socket=/var/lib/mysql/mysql.sock)。sudo chown -R mysql:mysql /var/lib/mysql。mysql -u root -p),运行GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码'; FLUSH PRIVILEGES;。现象:网站加载慢、MySQL查询延迟高、Apache进程占用过高CPU/内存。
解决方法:
sudo yum update -y。/etc/sysctl.conf):添加net.ipv4.tcp_tw_reuse = 1、net.core.somaxconn = 1024等(参考搜索结果中的网络优化参数),运行sudo sysctl -p生效。sudo systemctl stop firewalld(若已用firewalld替代)、sudo systemctl disable firewalld。KeepAlive设置(/etc/httpd/conf/httpd.conf):MaxKeepAliveRequests 100(限制持久连接数)、KeepAliveTimeout 5(空闲连接超时5秒)。innodb_buffer_pool_size(/etc/my.cnf):设置为物理内存的50%-70%(如8GB内存设为innodb_buffer_pool_size=4G),提高InnoDB缓存效率。query_cache_type=1、query_cache_size=64M。/etc/php.ini,添加zend_extension=opcache.so、opcache.enable=1、opcache.memory_consumption=128。php.ini中未使用的模块(如extension=php_ldap.dll)。sudo yum install -y memcached php-pecl-memcached,启动服务sudo systemctl start memcached。现象:问题反复出现,无法快速定位原因。
解决方法:
sudo tail -f /var/log/httpd/error_log(实时查看最新错误)。sudo tail -f /var/log/mariadb/mariadb.log(CentOS 7/8默认路径)。sudo journalctl -xe(查看近期系统错误)。sudo grep "ERROR" /var/log/httpd/error_log,快速定位错误信息。