LAMP(Linux+Apache+MySQL+PHP)是CentOS系统上常见的Web服务栈,故障排查需遵循“从基础到具体”的逻辑,优先检查服务状态、日志及配置,逐步定位问题根源。
检查服务运行状态
使用systemctl命令确认Apache(httpd)、MySQL(mysqld)和PHP-FPM(若使用)是否处于active (running)状态。若未运行,通过systemctl start <服务名>启动服务,并添加--now参数实现启动与启用开机自启同步(如systemctl start httpd --now)。
查看错误日志
日志是定位故障的核心依据,常见日志路径及查看方式:
/var/log/httpd/error_log(CentOS 7/8)或/var/log/apache2/error.log(部分发行版);/var/log/mysqld.log或/var/log/mysql/error.log;php.ini中的error_log参数指定(如/var/log/php-fpm/error.log)。tail -f <日志路径>实时查看最新错误信息,快速定位问题类型(如语法错误、权限拒绝、连接超时)。验证配置文件语法
配置文件语法错误会导致服务无法启动,需通过专用命令检查:
apachectl configtest(返回“Syntax OK”则配置正确);--validate-config参数(如systemctl restart mysqld --validate-config);php.ini中的关键参数(如memory_limit、upload_max_filesize)是否符合需求,修改后需重启PHP-FPM(systemctl restart php-fpm)。检查端口占用情况
Apache默认监听80端口(HTTP)、443端口(HTTPS),MySQL默认监听3306端口。使用netstat -tulnp | grep ':端口号'或ss -tulnp | grep ':端口号'查看端口占用进程,若端口被占用,可通过kill -9 <PID>终止冲突进程(需确认进程合法性),或修改服务配置文件中的Listen指令更换端口。
确认文件权限
Web服务器需具备对网站根目录及文件的访问权限,常规设置如下:
644(chmod 644 /path/to/file);755(chmod 755 /path/to/directory);apache或www-data(chown -R apache:apache /var/www/html)。权限过严会导致403 Forbidden错误,过松则可能引发安全问题。调整SELinux设置
若SELinux处于Enforcing模式(getenforce返回Enforcing),可能阻止Apache或PHP的正常操作(如访问文件、绑定端口)。临时禁用可执行setenforce 0,若问题解决,需永久修改:编辑/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=permissive(或disabled),并重启系统生效。
检查防火墙规则
CentOS系统的firewalld或iptables可能限制HTTP(80)、HTTPS(443)或MySQL(3306)端口的访问。使用以下命令开放端口并重载防火墙:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
若使用iptables,需执行iptables -I INPUT -p tcp --dport 80 -j ACCEPT并保存规则(service iptables save)。
Apache安装失败
httpd-devel、apr-util)或yum源异常。yum clean all && yum update清理缓存并更新软件包列表,再通过yum -y install httpd httpd-devel安装Apache及依赖。Apache服务无法启动
netstat -tulnp | grep ':80'查找占用进程并终止,或使用apachectl configtest修复配置文件语法错误。MySQL安装问题
libaio)、初始化脚本权限不足或磁盘空间不足。yum -y install libaio,确保/var/lib/mysql目录权限为mysql:mysql(chown -R mysql:mysql /var/lib/mysql),并通过df -h检查磁盘空间(需预留至少10%空闲空间)。PHP配置错误
php-mysql模块缺失)或php.ini参数设置错误(如short_open_tag=Off导致短标签失效)。yum -y install php php-mysql php-fpm安装缺失模块,修改php.ini后重启Apache(systemctl restart httpd)和PHP-FPM(systemctl restart php-fpm)。无法远程访问Web服务
permissive模式,或通过ping <服务器IP>、traceroute <服务器IP>检查网络连通性。通过以上步骤,可覆盖CentOS LAMP环境中的大部分常见故障。若问题仍未解决,建议结合错误日志中的具体信息(如“Permission denied”“Module not found”)进一步排查,或参考官方文档(如Apache的httpd.apache.org、MySQL的dev.mysql.com)获取针对性支持。