Debian PHP配置错误的快速排查与修复
一、定位问题
二、常见错误与修复对照表
| 症状 | 可能原因 | 快速修复 |
|---|---|---|
| 修改 php.ini 不生效 | CLI 与 Web 使用不同的 php.ini | 用 php --ini 与 phpinfo() 确认各自路径,分别修改并重启对应服务 |
| 启动/重启失败,提示解析配置失败 | php.ini 语法错误 | 运行 php -l /path/to/php.ini 修正语法,再重启 |
| 502 Bad Gateway、upstream prematurely closed | Nginx 与 PHP-FPM 通信不一致(socket/TCP)、权限不对 | 确认 /etc/php/{版本}/fpm/pool.d/www.conf 的 listen 与 Nginx 的 fastcgi_pass 一致;检查 /run/php/php{版本}-fpm.sock 属主为 www-data;重启两者 |
| 扩展未加载(如 Class ‘PDO’ not found) | 扩展未安装或未启用 | 安装扩展(如 sudo apt install php{版本}-pdo php{版本}-mysqli),重启 PHP-FPM/Apache |
| 权限被拒绝、上传失败 | 目录/文件属主或权限不当 | 将网站目录属主设为 www-data:www-data,目录 755、文件 644 |
| PHP-FPM 无法启动或端口被占用 | 配置错误、端口冲突、/run/php 目录缺失 | 用 php-fpm{版本} -t 排错;检查端口占用(如 **netstat -tulnp |
| 版本不匹配(CLI 与 Web 版本不同) | 多版本并存未切换默认 | 用 sudo update-alternatives --config php 切换;Apache 用 a2dismod/a2enmod 切换模块并重启 |
三、关键配置与路径示例
四、一键排查与修复命令清单
五、仍未解决时请准备的信息