您的位置:首页 > 运维架构 > Linux

centos 7 配置php-fpm服务到systemctl

2017-08-15 16:40 357 查看
编译安装好php后

目录为/usr/local/php

正常启动方式为:

/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

关闭php-fpm

kill INT/TERM 42891

以上启动方式是在没有生产php-fpm.pid文件时使用生效,若是要生成php-fpm.pid文件,修改/usr/local/php/etc/php-fpm/conf文件,默认pid是注释的,打开pid,修改路径

pid = /var/run/php-fpm.pid

wq保存退出,kill -USR2 42981重启php-fpm,便会生成pid文件,之后使用以下命令关闭重启

php-fpm 关闭:

kill -INT ‘cat /var/run/php-fpm.pid’

php-fpm 重启:

kill -USR2 ‘cat /var/run/php-fpm.pid’

现在开始配置systemctl启动php-fpm

按照上面所述先打开php-fpm.pid,关闭php-fpm服务

在/usr/lib/systemd/system/目录下生成php-fpm.service文件,赋予754权限,vim修改:

[Unit]

Description=php-fpm

After=syslog.target network.target

[Service]

Type=forking

PIDFile=/var/run/php-fpm.pid

ExecStart=/usr/local/php/sbin/php-fpm

ExecReload=/bin/kill -USR2 MAINPIDExecStop=/bin/kill−INTMAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别

[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

[Install]部分是服务安装的相关设置,可设置为多用户的

wq保存退出,执行如下命令生效

systemctl daemon-reload

systemctl start/reload/stop php-fpm.service 若发生报错,可执行systemctl status php-fpm.service查看报错原因,排查。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: