日志是故障排查的核心依据,可通过以下命令获取详细错误信息:
tail -f /var/log/syslog(实时查看系统级日志)、journalctl -xe(查看系统服务日志);tail -f /var/log/nginx/error.log(Nginx运行错误);tail -f /var/log/mysql/error.log(数据库错误);tail -f /var/log/php7.x-fpm.log(PHP-FPM运行错误,版本需替换为实际安装的PHP版本)。使用systemctl命令确认各组件是否正常运行:
sudo systemctl status nginx(Nginx状态);sudo systemctl status mysql/mariadb(数据库状态);sudo systemctl status php7.x-fpm(PHP-FPM状态,版本需替换)。sudo systemctl restart 服务名重启,并观察重启后的状态是否正常。配置文件语法错误是常见故障原因,需逐一检查:
sudo nginx -t(测试配置文件语法,若输出“syntax is ok”则表示正常);sudo mysqlcheck --all-databases --auto-repair(检查并修复数据库表);sudo php-fpm -t(测试PHP-FPM配置文件语法)。/etc/nginx/nginx.conf)、MySQL(/etc/mysql/my.cnf)、PHP-FPM(/etc/php/7.x/fpm/php.ini)。sudo netstat -tulnp | grep 端口号(如80、3306、9000)检查所需端口是否被其他进程占用。若被占用,可修改对应服务的端口(如Nginx的listen指令)或停止占用进程;sudo ufw status查看防火墙状态,确保允许HTTP(80)、HTTPS(443)流量:sudo ufw allow 'Nginx Full'。若使用iptables,需添加相应规则放行端口。使用以下命令检查系统资源使用情况:
top(查看CPU、内存占用排名)、htop(更直观的资源监控);df -h(查看磁盘使用率,若根分区满会导致服务异常);free -h(查看内存及交换分区使用情况,内存不足会导致PHP-FPM崩溃)。pm.max_children)或扩容服务器。/var/run/php7.x目录缺失(PHP-FPM进程用户无权限创建),解决方法:sudo mkdir -p /var/run/php7.x,并修改目录权限为www-data(Nginx/PHP-FPM默认用户);listen.backlog设置过小或pm.max_requests未限制内存泄露。解决方法:修改/etc/php/7.x/fpm/pool.d/www.conf,将listen.backlog = 1024、pm.max_requests = 200,然后重启PHP-FPM;location ~ \.php$块),确保fastcgi_pass指向正确的PHP-FPM socket(如unix:/run/php/php7.4-fpm.sock),并包含snippets/fastcgi-php.conf文件。保持系统及组件最新,避免兼容性问题:
sudo apt update;sudo apt upgrade -y;sudo apt install -f(自动修复缺失或冲突的依赖)。