0x01 前言

在过去很长的一段时间里,我在centos7中仍然使用service来启动和停止我自行编译的PHP。在今天,我终于决定改用systemctl,以便更符合centos7的风格。

其实两种方式都是可以在centos7中使用的,而且都不会产生任何问题,只是我喜欢新的东西而已。

0x02 准备

首先,与往常一样,先编译好php。然后定位到源码目录中的sapi文件夹,以下是我的路径,请根据实际情况进行查看:

这个目录中有一个名为fpm的文件夹,而这些内容都和你的编译参数相关联,所以这些文件会在编译的同时自动生成。

里面有两个文件是我们所需要的:

  • service:init.d.php-fpm
  • systemctl:php-fpm.service

我们可以分别查看文件的内容,先是init.d.php-fpm:

这一部分记录着我编译时所指定路径。然后是php-fpm.service:

这个文件内也同样记录着相关的路径和信息。

0x03 service

只需要将这两个文件放置到指定的位置即可实现功能,但一般在service和systemctl之间选其中一个即可。

首先是service。将init.d.php-fpm复制到指定位置:

随后即可使用service进行管理:

0x04 systemctl

接下来是systemctl,同样地将相关文件放置到指定位置:

然后通过以下命令查看相关状态:

从上面返还的信息可以得知,php-fpm的开机启动状态是出于禁用的。请注意第3行中的第1个disable,disable和enable分别表示开机启动已禁用和已启用:

下面是其他功能:

这里要注意的是,如果php-fpm因为配置文件错误而导致无法启动,有可能没有任何错误信息弹出,这时候就需要使用status进行查看状态。以下是启动成功的状态:

0x05 结语

我的其他软件都是用systemctl进行管理,一开始从service转过来时还有些不适应,但用过一段时间后,感觉systemctl确实比service要好。systemctl有以下功能: