一、基础状态检查
systemctl命令逐一检查Nginx、MySQL/MariaDB、PHP-FPM(需替换为实际版本,如php7.4-fpm)的服务状态,确认是否处于active (running)状态。若未运行,使用sudo systemctl start 服务名启动对应服务。netstat -tulnp | grep 端口号(如80对应Nginx、3306对应MySQL)检查关键端口是否被占用。若端口被占用,需终止冲突进程或修改服务端口配置。二、日志文件分析
/var/log/nginx/error.log/var/log/mysql/error.log/var/log/php7.x-fpm.log(x为具体版本号)或/var/log/php-fpm/error.logtail -f 日志路径(如tail -f /var/log/nginx/error.log)实时查看错误信息,快速定位问题根源(如配置语法错误、权限不足、数据库连接失败等)。三、配置文件验证
sudo nginx -t命令检查主配置文件(/etc/nginx/nginx.conf)及站点配置文件(/etc/nginx/sites-available/default)的语法正确性,若有错误需修正后重启服务。mysqld.cnf(/etc/mysql/mysql.conf.d/)或my.cnf,重启服务前建议通过mysqld --validate-config验证配置合法性(部分Ubuntu版本可能需要手动安装mysql-server-core-*包)。fastcgi_pass指令(如unix:/var/run/php/php7.4-fpm.sock)与PHP-FPM的listen参数(/etc/php/7.4/fpm/pool.d/www.conf)一致,避免PHP请求无法转发。四、权限与用户管理
www-data)对网站根目录(如/var/www/html)有读取权限,可使用sudo chown -R www-data:www-data /var/www/html和sudo chmod -R 755 /var/www/html调整。SHOW GRANTS FOR '用户名'@'localhost';检查用户权限,若权限不足,可通过GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'localhost'; FLUSH PRIVILEGES;授权。五、系统资源监控
top(按M按内存排序、P按CPU排序)或htop(需安装:sudo apt install htop)查看CPU、内存、磁盘I/O使用率。若资源耗尽(如内存不足导致进程被OOM Killer终止),需优化服务配置(如调整PHP-FPM的pm.max_children减少子进程数)或升级服务器配置。六、常见问题专项解决
nginx -t的语法错误,或通过netstat -tulnp | grep 80确认80端口未被其他进程(如Apache)占用。php.ini中display_errors未开启(需设置为On便于调试)、扩展缺失(如php-mysql未安装,通过sudo apt install php-mysql安装)。sudo systemctl status mysql),确认bind-address(/etc/mysql/mysql.conf.d/mysqld.cnf)是否允许远程连接(如0.0.0.0),并通过SHOW GRANTS FOR '用户名'@'%'检查远程用户权限。fastcgi_read_timeout(如设置为300s)和PHP-FPM的request_terminate_timeout(如设置为300s),并确保pm.max_children足够处理并发请求。