您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

php-fpm的安装和启动

2024/3/29 8:14:35发布5次查看
本篇文章主要介绍了php-fpm的安装和启动,对于php教程有兴趣的同学可以参考一下。
在前面我学习过了php中的mod_php模式和mode_fastcgi和php-fpm模式,中大致的讲述了几种模式的区别,也明白了php-fpm是fastcgi模式的管理器(地址:https://www.zybuluo.com/phper/note/50231)。今天就来看下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种方式可以找到之前的编译参数:
   1、在源码 /lamp/php-5.4.11/中找到 config.nice,这个就是之前的编译参数
2、在php.ini配置文件中找到configure相关的配置 :     /usr/local/php/bin/php -i |grep 'configure'好,我们开始,找到之前的编译参数:
[root@localhost /]# 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后,重新编译:
[root@localhost /]# cd /lamp/php-5.4.11[root@localhost 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'[root@localhost 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端口,我们查看下进程:
[root@localhost 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
[root@localhost php-5.4.11]# netstat -tnl | grep 9000tcp 0 0 127.0.0.1:9000 0.0.0.0:* listen [root@localhost php-5.4.11]#
好,安装和启动都ok了。
开机启动 php-fpm
之前接说过php-fpm是独立于web服务器和php之前的一层服务器,所以,我们需要开机启动它
开机启动的配置文件是:/etc/rc.local ,加入 /usr/local/php/sbin/php-fpm 即可
[root@localhost init]# vi /etc/rc.local#!/bin/sh## this script will be executed *after* all the other init scripts.# you can put your own initialization stuff in here if you don't# want to do the full sys v style init stuff.touch /var/lock/subsys/local/usr/local/apache/bin/apachectl start/usr/local/bin/redis-server /etc/redis.conf/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`
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录