参考资料

  1. 如何安装宝塔面板?
  2. php服务器搭建软件详细说明以及案例
  3. php服务器安全详细说明以及案例
  4. 宝塔面板安装教程
  5. 宝塔面板安装python
  6. 宝塔面板安装命令
  7. 宝塔面板在线安装
  8. 宝塔面板安装jdk
  1. 502 Bad Gateway

    • 原因:PHP-FPM进程崩溃或未启动;Nginx/Apache与PHP-FPM通信失败。

    • 解决:检查PHP-FPM进程状态(systemctl status php-fpm),重启服务(systemctl restart php-fpm);确认监听地址(listen = 127.0.0.1:9000)与Web服务器配置一致。

  2. 504 Gateway Timeout

    • 原因:PHP脚本执行超时;PHP-FPM资源不足。

    • 解决:调整request_terminate_timeout(php-fpm.conf);增加pm.max_children(进程数)或优化脚本性能。

  3. 空响应或空白页

    • 原因:PHP错误未显示;脚本语法错误。

    • 解决:启用display_errors = On(php.ini);检查PHP日志(/var/log/php-fpm.log);验证脚本语法(php -l script.php)。

  4. “Primary script unknown”

    • 原因:Nginx未正确传递脚本路径到PHP-FPM。

    • 解决:确保Nginx配置包含fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;,且root指令路径正确。

  5. 进程池耗尽(“pm.max_children” reached)

    • 原因:并发请求超过进程限制。

    • 解决:增加pm.max_children(根据服务器内存调整);优化pm模式(如ondemand改为dynamic)。

  6. 文件权限问题

    • 原因:PHP-FPM用户无权访问脚本或目录。

    • 解决:确保用户(如www-data)拥有权限:chown -R www-data:www-data /var/www;检查listen.owner/group(php-fpm.conf)。

  7. 内存耗尽(“Allowed memory exhausted”)

    • 原因:脚本内存超出限制。

    • 解决:增加memory_limit(php.ini);优化代码减少内存使用。

  8. 慢速脚本阻塞进程

    • 原因:单个脚本执行时间过长,占用进程。

    • 解决:设置request_slowlog_timeout(php-fpm.conf)记录慢日志;优化数据库查询或外部请求。

  9. PHP-FPM无法启动

    • 原因:配置错误;端口冲突。

    • 解决:检查语法(php-fpm -t);确认端口未被占用(netstat -tulnp | grep 9000)。

  10. 日志文件过大

    • 原因:未配置日志轮转。

    • 解决:使用logrotate配置日志切割;调整php-fpm.log级别(如log_level = notice)。