Ubuntu PHP配置错误的系统化排查与修复
一、快速定位问题
二、按场景修复
三、配置文件语法与生效验证
四、常见报错对照与处理
| 症状 | 可能原因 | 处理要点 |
|---|---|---|
| 502 Bad Gateway / “Connection refused” | PHP-FPM 未启动或 fastcgi_pass 指向错误 | 启动服务:sudo systemctl start php7.x-fpm;核对 socket 路径或端口;查看 /var/log/php7.x-fpm.log 与 /var/log/nginx/error.log |
| “Permission denied” 访问 .sock | php7.x-fpm.sock 权限/属主不正确 | 检查 /run/php/php7.x-fpm.sock 权限与所属用户组(应与 www-data 一致);必要时调整 listen.owner/listen.group 与 listen.mode(如 0660) |
| 页面空白或仅显示下载 | PHP 未被解析(模块未启用或 AddHandler 缺失) | 确认 libapache2-mod-php 已安装并启用;检查 Apache 是否处理 .php;查看 /var/log/apache2/error.log |
| 扩展函数未定义 | 扩展未安装或未启用 | 安装扩展(如 php-gd、php-mysql);重启服务;用 php -m 验证 |
| 配置文件语法错误 | php.ini 或 FPM 池配置有误 | 修正后重启;FPM 配置语法可用:php-fpm7.x -t;查看 /var/log/php7.x-fpm.log |
| “No input file specified” | root 指向错误目录或 SCRIPT_FILENAME 传递不当 | 核对 Nginx root 与 fastcgi_param SCRIPT_FILENAME 是否指向真实文件 |
| “ubuntu not authorized to perform operation” | 当前用户权限不足 | 使用 sudo 执行需要管理员权限的操作,或调整 sudoers 策略 |
| 以上对照与处理要点可结合日志与模块状态快速定位并修复。 |
五、最小可用配置示例