centos 7 配置php-fpm服务到systemctl

编译安装好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/killINTMAINPID
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查看报错原因,排查。

展开阅读全文

没有更多推荐了,返回首页