温馨提示×

ubuntu php-fpm配置步骤是什么

小樊
34
2025-12-04 16:16:29
栏目: 编程语言

Ubuntu 上配置 PHP-FPM 的标准步骤

一 安装与版本选择

  • 更新索引并安装所需版本(将 {version} 替换为你的版本,如 8.1、8.2、8.3):
    • sudo apt update
    • sudo apt install php{version}-fpm
  • 若不确定版本,可直接安装系统默认的最新版:sudo apt install php-fpm
  • 安装完成后确认服务单元名称:systemctl list-units --type=service | grep php-fpm

二 核心配置

  • 配置文件路径与池配置
    • 主配置:/etc/php/{version}/fpm/php-fpm.conf
    • 进程池:/etc/php/{version}/fpm/pool.d/www.conf(默认池为 www
  • 常用参数建议
    • 监听方式(二选一,保持与 Web 服务器一致)
      • Unix 套接字:listen = /run/php/php{version}-fpm.sock
      • TCP 端口:listen = 127.0.0.1:9000
    • 权限与运行身份
      • listen.owner = www-data;listen.group = www-data
      • user = www-data;group = www-data
    • 进程管理(示例为 dynamic,按服务器内存与并发调优)
      • pm = dynamic
      • pm.max_children = 50
      • pm.start_servers = 5
      • pm.min_spare_servers = 5
      • pm.max_spare_servers = 35
      • pm.max_requests = 500(预防内存泄漏)
    • 请求处理
      • request_terminate_timeout = 30s(脚本最大执行时间)
    • 日志
      • catch_workers_output = yes(便于排错)

三 启动与集成 Web 服务器

  • 启动与开机自启
    • sudo systemctl start php{version}-fpm
    • sudo systemctl enable php{version}-fpm
    • sudo systemctl status php{version}-fpm(确认 active/running)
  • Nginx 集成示例(站点配置 server 块内)
    • location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php{version}-fpm.sock; # 或 127.0.0.1:9000 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
    • 应用:sudo systemctl restart nginx
  • Apache 集成示例
    • 启用模块:sudo a2enmod proxy_fcgi setenvif
    • 虚拟主机或全局配置:
      • <FilesMatch .php$> SetHandler “proxy:unix:/run/php/php{version}-fpm.sock|fcgi://localhost”
    • 应用:sudo systemctl restart apache2

四 验证与常用运维

  • 验证
    • 创建测试文件:echo “” | sudo tee /var/www/html/info.php
    • 浏览器访问:http://服务器IP/info.php(看到 PHP 信息页即正常)
  • 常用运维
    • 重载配置:sudo systemctl reload php{version}-fpm
    • 查看状态与日志:sudo systemctl status php{version}-fpm;journalctl -u php{version}-fpm -f
    • 安装扩展(按需):sudo apt install php-{extension}-fpm(如:php-mysql-fpm、php-curl-fpm)

0