LAMP (Linux + Apache + MySQL/MariaDB + PHP) 是常见的Web服务堆栈,以下是系统化的故障排查方法:
服务状态检查:
systemctl status httpd # Apache
systemctl status mariadb # MariaDB/MySQL
systemctl status php-fpm # PHP-FPM (如果使用)
日志检查:
# Apache错误日志
tail -f /var/log/httpd/error_log
# MySQL错误日志
tail -f /var/log/mysql/error.log
# PHP错误日志
tail -f /var/log/php_errors.log
端口冲突:
netstat -tulnp | grep :80
配置错误:
apachectl configtest
权限问题:
chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html
连接问题:
mysql -u username -p
性能问题:
mysqladmin -u root -p status
修复损坏表:
mysqlcheck -u root -p --auto-repair --check --all-databases
语法错误:
php -l /path/to/file.php
显示错误: 在php.ini中设置:
display_errors = On
error_reporting = E_ALL
扩展问题:
php -m
检查防火墙设置:
firewall-cmd --list-all
检查SELinux状态:
sestatus
getenforce
检查系统资源:
top
free -m
Apache性能调优:
修改/etc/httpd/conf/httpd.conf
中的MaxKeepAliveRequests
和KeepAliveTimeout
strace跟踪系统调用:
strace -p $(pgrep httpd)
tcpdump网络分析:
tcpdump -i any port 80 -w /tmp/http.pcap
Require
指令.htaccess
文件sql
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
通过以上系统化的排查步骤,可以解决大多数LAMP环境中的常见问题。