我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • laravel

  • thinkphp

  • swoole

  • workman

  • php

    • php
    • phpstorm常用快捷键
    • new关键字和依赖注入对比
    • windows上php多版本存在
    • 封装一个wkhtmltopdf的扩展类
    • 请求第三方接口绕过白名单操作
    • 封装一个基础的openai请求类
    • 封装一个基础的请求第三方类
    • 支付宝支付使用证书方式进行支付的类
    • cookie通俗讲解
    • php-fpm服务的重启
      • guzzle中cookie使用
    • gpt

    • java

    • 后端
    • php
    窝窝侠
    2024-11-18

    php-fpm服务的重启

    # 直接通过命令行重启 PHP-FPM

    # 1. 使用 kill 命令

    如果您知道 PHP-FPM 的进程 ID(PID),可以使用 kill 命令结束进程并重新启动 PHP-FPM。

    # 步骤:

    1. 查找 PHP-FPM 进程的 PID:

      pgrep php-fpm
      
      1
    2. 使用 kill 命令结束 PHP-FPM 进程:

      sudo kill <PID>  # 替换 <PID> 为实际的进程 ID
      
      1
    3. 重新启动 PHP-FPM-关键性操作找到php-fpm:

      #后面的--fpm-config可以不用填写
      /usr/local/sbin/php-fpm --fpm-config /path/to/php-fpm.conf
      
      1
      2

    # 2. 使用 pkill 命令

    如果您希望通过进程名称结束所有 PHP-FPM 实例,可以使用 pkill 命令:

    sudo pkill php-fpm
    
    1

    然后,重新启动 PHP-FPM,如下所示:

    /usr/local/sbin/php-fpm --fpm-config /path/to/php-fpm.conf
    
    1

    # 3. 使用自定义脚本

    您可以创建一个简单的 shell 脚本来管理 PHP-FPM 的重启。这是一个简单的示例脚本:

    #!/bin/bash
    
    # 停止 PHP-FPM
    pkill php-fpm
    
    # 启动 PHP-FPM
    /usr/local/sbin/php-fpm --fpm-config /path/to/php-fpm.conf
    
    echo "PHP-FPM has been restarted."
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    将这个脚本保存为 restart_php_fpm.sh,然后赋予执行权限:

    chmod +x restart_php_fpm.sh
    
    1

    运行脚本来重启 PHP-FPM:

    ./restart_php_fpm.sh
    
    1

    # 4. 使用 supervisor 管理 PHP-FPM

    如果您希望进一步简化进程管理,可以考虑使用 supervisor。supervisor 是一个进程控制系统,允许您在守护进程中运行和管理进程。

    # 安装 Supervisor

    安装 supervisor:

    sudo apt install supervisor  # Debian/Ubuntu
    sudo yum install supervisor  # Red Hat/CentOS
    
    1
    2

    # 配置 Supervisor

    1. 创建配置文件,例如 /etc/supervisor/conf.d/php-fpm.conf:

      [program:php-fpm]
      command=/usr/local/sbin/php-fpm --fpm-config /path/to/php-fpm.conf
      autostart=true
      autorestart=true
      stderr_logfile=/var/log/php-fpm.err.log
      stdout_logfile=/var/log/php-fpm.out.log
      
      1
      2
      3
      4
      5
      6
    2. 更新 supervisor 配置并启动 PHP-FPM:

      sudo supervisorctl reread
      sudo supervisorctl update
      sudo supervisorctl start php-fpm
      
      1
      2
      3
    3. 您可以使用以下命令管理 PHP-FPM:

      sudo supervisorctl restart php-fpm
      sudo supervisorctl status php-fpm
      
      1
      2

    # 5. 创建自定义服务文件

    如果您希望能够使用 systemctl 管理 PHP-FPM,您可以创建自定义的服务文件。以下是创建一个 systemd 服务文件的步骤:

    1. 创建服务文件,例如 /etc/systemd/system/php-fpm.service:

      bash
      
      sudo nano /etc/systemd/system/php-fpm.service
      
      1
      2
      3
    2. 添加以下内容,替换为您实际的路径和配置文件:

      [Unit]
      Description=PHP FastCGI Process Manager
      After=network.target
      
      [Service]
      Type=simple
      ExecStart=/www/server/php/81/sbin/php-fpm --fpm-config /www/server/php/81/etc/php-fpm.conf
      ExecStop=/usr/bin/pkill php-fpm
      Restart=on-failure
      
      [Install]
      WantedBy=multi-user.target
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
    3. #真实的配置,--nodaemonize必须要加上不然启动不了
      [Unit]
      Description=PHP FastCGI Process Manager  # 描述服务的功能
      After=network.target  # 确保在网络可用后启动
      
      [Service]
      Type=simple  # 服务类型为简单模式
      ExecStart=/www/server/php/81/sbin/php-fpm --nodaemonize  # 启动 PHP-FPM 命令
      ExecStop=/bin/sh -c 'pkill -f "php-fpm: master process (/www/server/php/81/etc/php-fpm.conf)"'  # 停止服务的命令,单个版本:ExecStop=/usr/bin/pkill php-fpm
      Restart=on-failure  # 当服务失败时自动重启
      
      [Install]
      WantedBy=multi-user.target  # 定义服务的目标
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
    4. 保存并关闭文件。

    5. 重新加载 systemd 配置并启动服务:

      bashsudo systemctl daemon-reload
      sudo systemctl start php-fpm
      sudo systemctl enable php-fpm
      
      1
      2
      3
    6. 现在您可以使用以下命令管理 PHP-FPM:

      bashsudo systemctl restart php-fpm
      sudo systemctl status php-fpm
      
      1
      2
    • 使用 kill 或 pkill 命令:手动结束进程并重启 PHP-FPM。

    • 创建自定义脚本:自动化重启 PHP-FPM。

    • 使用 supervisor 管理进程:实现自动重启和监控。

      # 6.php检查配置是否生效

      如果你不确定 PHP-FPM 配置是否已经生效,可以通过以下方式验证:

      • 查看 PHP 配置:

        php -i | grep "Configuration File"
        
        1

        确认正在加载正确的 php.ini 文件。

      • 检查 PHP 的设置:

        php -i | grep <配置项名称>
        
        1

        例如,查看 upload_max_filesize 是否生效:

        php -i | grep upload_max_filesize
        
        1

      通过这些方法,你可以确保 PHP-FPM 成功加载了新的 php.ini 配置。

    在线编辑 (opens new window)
    上次更新: 2025/02/25, 18:30:54
    cookie通俗讲解
    guzzle中cookie使用

    ← cookie通俗讲解 guzzle中cookie使用→

    最近更新
    01
    showprocess用法
    04-29
    02
    vue3中尖括号和冒号的使用细则
    04-29
    03
    sd使用
    02-22
    更多文章>
    🖥️

    © 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×