Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • shell

  • tool

    • mac
    • mac tool
    • c tool
    • platform
    • dev tool
    • java tool
    • IDEA
    • vscode
    • Docker 使用指南
    • unbuntuOnWindows
    • oh-my-zsh
    • github
    • lldb
    • ripgrep 高性能文本搜索工具使用指南
    • appium
    • mvn
    • ffmpeg
    • gradle
    • git 使用指南
    • jenv
    • php-fpm
      • PHP-FPM 的主要功能和特点
      • 安装和配置 PHP-FPM
        • 安装 PHP-FPM
        • 配置 PHP-FPM
        • 启动和管理 PHP-FPM
        • 验证 PHP-FPM 是否在运行
    • raycast
    • Vim 编辑器入门指南
    • jadx
    • excalidraw
  • 网络

  • algo

  • compute_base

  • blog

  • growth

  • java

  • C&C++

  • ai

  • secure

  • cms

  • english

  • 生活

  • 金融学

  • more

  • other
  • tool
Jacky
2024-06-12
目录

php-fpm

PHP-FPM(PHP FastCGI Process Manager)是一种专门为处理高并发环境下的 PHP 脚本而设计的工具。它是 PHP 的一个进程管理器,主要用于提高网站的性能和稳定性,特别是在高负载情况下。PHP-FPM 是运行在 FastCGI 模式下的 PHP 解释器的一个实现

注:FastCGI 是一种常用于提高交互式应用程序(如 Web 服务器)性能的协议。它扩展和改进了早期的 CGI(Common Gateway Interface)标准,提供了一种更高效、更可扩展的方式来处理请求

PHP-FPM 是一个非常强大的工具,专为高并发和高性能环境下的 PHP 应用而设计。通过合理配置和优化,可以显著提高 PHP 应用的响应速度和稳定性

# PHP-FPM 的主要功能和特点

  1. 进程管理:
  • PHP-FPM 管理多个 PHP 工作进程,允许 PHP 解释器以多进程模式运行,以提高并发处理能力
  1. 负载均衡:
  • 它可以通过配置进程池来平衡负载,确保请求能够均匀分布到不同的进程中,防止某个进程过载
  1. 动态子进程生成:
  • PHP-FPM 能根据需要动态地启动和关闭 PHP 子进程,从而更好地利用服务器资源
  1. 日志功能:
  • 它提供了详细的日志记录功能,帮助开发者和系统管理员监控和排查问题
  1. 慢请求管理:
  • PHP-FPM 可以记录执行时间过长的请求,便于性能优化和故障排除
  1. 配置灵活:
  • PHP-FPM 提供了灵活的配置选项,可以针对不同的应用场景进行优化配置

# 安装和配置 PHP-FPM

# 安装 PHP-FPM

在大多数 Linux 发行版上,可以通过包管理器安装 PHP-FPM。例如,在 Ubuntu 上,可以使用以下命令安装 PHP-FPM:

sudo apt update
sudo apt install php-fpm
1
2

# 配置 PHP-FPM

PHP-FPM 的主要配置文件通常位于 /etc/php/<version>/fpm/php-fpm.conf。此外,每个进程池的配置文件位于 /etc/php/<version>/fpm/pool.d/ 目录下

典型的 php-fpm.conf 配置文件示例:

[global]
pid = /run/php/php-fpm.pid
error_log = /var/log/php-fpm.log

include=/etc/php/<version>/fpm/pool.d/*.conf
1
2
3
4
5

一个典型的进程池配置文件示例(如 www.conf):

[www]
user = www-data
group = www-data
listen = /run/php/php-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
request_slowlog_timeout = 5s
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 启动和管理 PHP-FPM

安装完成并配置好 PHP-FPM 后,可以通过以下命令启动和管理 PHP-FPM 服务:

    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
    sudo systemctl status php-fpm
    
    1
    2
    3
    brew services start php
    brew services stop php
    brew services restart php
    
    1
    2
    3
    // Make sure to add code blocks to your code group

    在大多数现代 Linux 发行版上,使用 systemctl 命令可以方便地管理 PHP-FPM 服务

    # 验证 PHP-FPM 是否在运行

    可以通过检查 PHP-FPM 的监听端口或套接字来确认其是否正在运行:

    lsof -Pni :9000
    
    1

    或检查套接字文件:

    ls -la /usr/local/var/run/php-fpm.sock
    
    1

    如果看到 PHP-FPM 正在监听相应的端口或套接字文件存在且有适当的权限,则 PHP-FPM 运行正常

    上次更新: 2024/12/01, 17:09:08
    jenv
    raycast

    ← jenv raycast→

    最近更新
    01
    npx 使用指南
    10-12
    02
    cursor
    09-28
    03
    inspect
    07-20
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 Jacky | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式