zoukankan      html  css  js  c++  java
  • php-fpm启动,重启,终止操作

    最近安装了mysqli扩展,重启了nginx后,phpinfo()没有显示出mysqli,后来搞不出原因,直接使用了pdo连接数据库。直到今天安装redis后phpinfo()没有显示redis,内心那一万只奔腾的草泥马终于爆发,狂找办法,才知道是php-fpm没有重启,按网上的方法鼓捣,完全就是百度文章一家亲,没有一个说到点上,最后还是鼓捣出来了,下面说说php-fpm启动,重启,终止操作方法。

    启动php-fpm:

    /usr/local/php/sbin/php-fpm

    php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:

    master进程可以理解以下信号

    INT, TERM 立刻终止
    QUIT 平滑终止
    USR1 重新打开日志文件
    USR2 平滑重载所有worker进程并重新载入配置和二进制模块

    一个简单直接的重启方法:

    先查看php-fpm的master进程号

    复制代码
    复制代码
    # ps aux|grep php-fpm
    root     21891  0.0  0.0 112660   960 pts/3    R+   16:18   0:00 grep --color=auto php-fpm
    root     42891  0.0  0.1 182796  1220 ?        Ss   4月18   0:19 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
    nobody   42892  0.0  0.6 183000  6516 ?        S    4月18   0:07 php-fpm: pool www
    nobody   42893  0.0  0.6 183000  6508 ?        S    4月18   0:17 php-fpm: pool www
    复制代码
    复制代码

    重启php-fpm:

    kill -USR2 42891

    OK了。

    上面方案一般是没有生成php-fpm.pid文件时使用,如果要生成php-fpm.pid,使用下面这种方案:

    上面master进程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf这个配置文件,cat /usr/local/php/etc/php-fpm.conf 发现:

    [global]
    ; Pid file
    ; Note: the default prefix is /usr/local/php/var
    ; Default Value: none
    ;pid = run/php-fpm.pid

    pid文件路径应该位于/usr/local/php/var/run/php-fpm.pid,由于注释掉,所以没有生成,我们把注释去除,再kill -USR2 42891 重启php-fpm,便会生成pid文件,下次就可以使用以下命令重启,关闭php-fpm了:

    php-fpm 关闭:
    kill -INT 'cat /usr/local/php/var/run/php-fpm.pid'
    php-fpm 重启:
    kill -USR2 'cat /usr/local/php/var/run/php-fpm.pid'

  • 相关阅读:
    Java内部类
    Java创建对象的初始化顺序
    Java多态与动态绑定
    Java访问修饰符
    Django框架学习----视图与模板(详情页的上下篇文章跳转跳转)
    Django框架学习----视图与模板(首页与详情页的跳转)
    Django框架学习----视图与模板(显示数据库数据到页面)
    Django框架学习----视图与模板(网站页面设计)
    Django框架学习----模型层
    Logstash同步mysql数据库信息到ES
  • 原文地址:https://www.cnblogs.com/liluxiang/p/9318970.html
Copyright © 2011-2022 走看看