温馨提示×

php-fpm进程管理Linux技巧有哪些

小樊
61
2025-09-06 13:00:21
栏目: 编程语言

以下是Linux下PHP-FPM进程管理的常用技巧:

一、基础进程管理

  • 启动/停止/重启
    sudo systemctl start/stop/restart php-fpm  # systemd系统  
    sudo service php-fpm start/stop/restart    # init.d系统  
    
  • 查看状态
    sudo systemctl status php-fpm              # 查看服务状态  
    ps aux | grep php-fpm                      # 查看进程详情  
    netstat -tuln | grep php-fpm               # 查看监听端口  
    

二、配置优化

  • 调整进程池参数(关键参数):
    • pm.max_children:最大子进程数,根据服务器内存调整(建议不超过内存/200MB)。
    • pm.start_servers:启动时的子进程数,建议设置为CPU核心数×2。
    • pm.min/max_spare_servers:空闲进程上下限,避免频繁创建/销毁进程。
    • request_terminate_timeout:单个请求超时时间,防止脚本长时间占用资源。
  • 启用OPcache
    php.ini中配置,缓存编译后的字节码,显著提升执行效率。

三、性能调优

  • 使用连接池:通过PDO或mysqli复用数据库连接,减少连接开销。
  • 限制资源使用
    • 通过ulimit -n增加文件描述符限制(默认1024可能不足)。
    • php-fpm.conf中设置rlimit_files限制进程最大文件打开数。
  • 异步处理:使用Swoole等扩展实现异步任务,提升并发能力。

四、监控与维护

  • 日志分析
    • 错误日志:/var/log/php-fpm/error.log(定位脚本错误)。
    • 慢日志:启用slowlog参数记录超时请求,优化性能瓶颈。
  • 实时监控工具
    • top/htop:查看CPU/内存占用。
    • php-fpm状态页:在配置中启用pm.status_path,通过HTTP访问实时数据。
  • 自动化运维
    • 使用Supervisor守护进程,防止意外退出。
    • 定期重启PHP-FPM释放内存(如通过Cron定时任务)。

五、安全配置

  • 限制文件访问:通过open_basedir参数限制脚本可访问的目录。
  • 禁用危险函数:在php.ini中禁用exec/passthru等高风险函数。
  • 权限控制:确保PHP-FPM以非特权用户(如www-data)运行。

参考来源

0