1. 云栖社区>
  2. PHP教程>
  3. 正文

php-fpm的安装和启动

作者:用户 来源:互联网 时间:2017-12-01 13:13:48

php-fpm的安装和启动 - 摘要: 本文讲的是php-fpm的安装和启动, php-fpm的安装和启动,有需要的朋友可以参考下。 安装 php-fpm我的机器是centos 6.2 之前就已经安装过了php 5.4.11,PHP在 5.3.3 之后已经讲php-fpm写入php源码核心了。所以已经不需要另外下载了

php-fpm的安装和启动,有需要的朋友可以参考下。


安装 php-fpm

我的机器是centos 6.2 之前就已经安装过了php 5.4.11,PHP在 5.3.3 之后已经讲php-fpm写入php源码核心了。所以已经不需要另外下载了。我这里是5.4.11所以就可以直接用。

由于我php已经安装好了,而且之前编译的时候没有带上fpm模式,所以我必须找到源码重新编译一下:

要想使php支持php-fpm,只需要在编译的时候带上 --enable-fpm 就可以了。

所以,我需要找到之前的编译参数, 后面加上--enable-fpm ,重新编译下就可以了。之前就讲过,有2种方式可以找到之前的编译参数:

在源码 /lamp/php-5.4.11/中找到 config.nice,这个就是之前的编译参数
在php.ini配置文件中找到Configure相关的配置 : /usr/local/php/bin/php -i |grep 'Configure'

好,我们开始,找到之前的编译参数:

[[email protected] /]# cd /lamp/php-5.4.11 & vi config.nice'./configure' /'--prefix=/usr/local/php' /'--with-config-file-path=/usr/local/php/etc/' /'--with-apxs2=/usr/local/apache/bin/apxs' /'--with-mysql=/usr/local/mysql/' /'--with-libxml-dir=/usr/local/libxml2/' /'--with-png-dir=/usr/local/libpng/' /'--with-jpeg-dir=/usr/local/jpeg8/' /'--with-freetype-dir=/usr/local/freetype/' /'--with-gd=/usr/local/gd/' /'--with-zlib-dir=/usr/local/zlib/' /'--with-mcrypt=/usr/local/libmcrypt/' /'--with-mysqli=/usr/local/mysql/bin/mysql_config' /'--enable-soap' /'--enable-mbstring=all' /'--enable-sockets' /

加上--enable-fpm后,重新编译:

[[email protected] /]# cd /lamp/php-5.4.11[[email protected] php-5.4.11]# './configure' /    '--prefix=/usr/local/php' /    '--with-config-file-path=/usr/local/php/etc/' /    '--with-apxs2=/usr/local/apache/bin/apxs' /    '--with-mysql=/usr/local/mysql/' /    '--with-libxml-dir=/usr/local/libxml2/' /    '--with-png-dir=/usr/local/libpng/' /    '--with-jpeg-dir=/usr/local/jpeg8/' /    '--with-freetype-dir=/usr/local/freetype/' /    '--with-gd=/usr/local/gd/' /    '--with-zlib-dir=/usr/local/zlib/' /    '--with-mcrypt=/usr/local/libmcrypt/' /    '--with-mysqli=/usr/local/mysql/bin/mysql_config' /    '--enable-soap' /    '--enable-mbstring=all' /    '--enable-sockets' /    '--enable-fpm'[[email protected] php-5.4.11] make && make install
启动 php-fpm

安装完成之后,我们尝试着启动:

启动命令是:

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

报错了:

[26-Feb-2015 15:39:55] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)[26-Feb-2015 15:39:55] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'[26-Feb-2015 15:39:55] ERROR: FPM initialization failed

错误信息说找不到 php-fpm.conf

哦,原来是php-fpm.conf还没有,我们到 /usr/local/php/etc目录下将php-fpm.conf.default拷贝也一份成php-fpm.conf

cd /usr/local/php/etc/cp php-fpm.conf.default php-fpm.conf

编辑一下这个配置文件:

vim php-fpm.confpid = run/php-fpm.piduser = wwwgroup = www

再次尝试启动:

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

再次报错说www 用户不存在:

[26-Feb-2015 15:57:38] ERROR: [pool www] cannot get uid for user 'www'[26-Feb-2015 15:57:38] ERROR: FPM initialization failed

好,那我们新建www 用户组:

groupadd wwwuseradd -g www www

再次启动:

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

没有任何的输出,表示成功了。。。

php-fpm占用的是9000端口,我们查看下进程:

[[email protected] php-5.4.11]# ps -ef|grep php-fpmroot      1377  1231  0 11:19 pts/1    00:00:00 grep php-fpmroot     29249     1  0 06:22 ?00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)www      29250 29249  0 06:22 ?00:00:00 php-fpm: pool wwwwww      29251 29249  0 06:22 ?00:00:00 php-fpm: pool wwwroot     32132  6158  0 08:25 pts/2    00:00:00 vi php-fpm.conf[[email protected] php-5.4.11]# netstat -tnl | grep 9000tcp0      0 127.0.0.1:9000  0.0.0.0:*       LISTEN      [[email protected] php-5.4.11]# 

好,安装和启动都OK了。

开机启动 php-fpm

之前接说过php-fpm是独立于web服务器和php之前的一层服务器,所以,我们需要开机启动它

开机启动的配置文件是:/etc/rc.local ,加入 /usr/local/php/sbin/php-fpm 即可

[[email protected] init]# vi /etc/rc.local      1 #!/bin/sh      2 #      3 # This script will be executed *after* all the other init scripts.      4 # You can put your own initialization stuff in here if you don't      5 # want to do the full Sys V style init stuff.      6       7 touch /var/lock/subsys/local      8 /usr/local/apache/bin/apachectl start      9 /usr/local/bin/redis-server /etc/redis.conf     10 /usr/local/php/sbin/php-fpm

光安装好php-fpm也是没用的,得配合web服务器使用,下一节,我要学习nginx的安装,以及nginx连接php-fpm来使用php。

重启 php-fpm

我们在新安装扩展后,是需要重新php-fpm的,已使扩展生效。

最简单粗暴的重新php-fpm的方式是:

先找到php-fpm的进程号,kill 掉,再用/usr/local/php/sbin/php-fpm 这样启动。

其实还有更多温和的方法,就是使用信号。

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

示例:

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`

https://www.zybuluo.com/phper/note/72879

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索,以便于您获取更多的相关知识。