php-fpm的安装和启动
2016-02-19 11:25
621 查看
在前面我学习过了php中的
我的机器是centos 6.2 之前就已经安装过了php 5.4.11,PHP在 5.3.3 之后已经讲php-fpm写入php源码核心了。所以已经不需要另外下载了。我这里是5.4.11所以就可以直接用。
由于我php已经安装好了,而且之前编译的时候没有带上fpm模式,所以我必须找到源码重新编译一下:
要想使php支持php-fpm,只需要在编译的时候带上
所以,我需要找到之前的编译参数, 后面加上
在源码 /lamp/php-5.4.11/中找到
在php.ini配置文件中找到
好,我们开始,找到之前的编译参数:
[/code]
加上
[/code]
安装完成之后,我们尝试着启动:
启动命令是:
/usr/local/php/sbin/php-fpm
报错了:
[/code]
错误信息说找不到 php-fpm.conf
哦,原来是php-fpm.conf还没有,我们到 /usr/local/php/etc目录下将
[/code]
编辑一下这个配置文件:
[/code]
再次尝试启动:
/usr/local/php/sbin/php-fpm
再次报错说www 用户不存在:
[/code]
好,那我们新建www 用户组:
[/code]
再次启动:
/usr/local/php/sbin/php-fpm
没有任何的输出,表示成功了!!!
php-fpm占用的是9000端口,我们查看下进程:
[/code]
[/code]
好,安装和启动都OK了。
之前接说过php-fpm是独立于web服务器和php之前的一层服务器,所以,我们需要开机启动它
开机启动的配置文件是:
[/code]
光安装好php-fpm也是没用的,得配合web服务器使用,下一节,我要学习nginx的安装,以及nginx连接php-fpm来使用php。
我们在新安装扩展后,是需要重新php-fpm的,已使扩展生效。
最简单粗暴的重新php-fpm的方式是:
先找到php-fpm的进程号,kill 掉,再用/usr/local/php/sbin/php-fpm 这样启动。
其实还有更多温和的方法,就是使用
示例:
php-fpm 关闭:
php-fpm 重启:
mod_php模式和
mode_fastcgi和php-fpm模式:地址,中大致的讲述了几种模式的区别,也明白了php-fpm是fastcgi模式的管理器。今天就来看下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'
好,我们开始,找到之前的编译参数:
[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' \
[/code]
加上
--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
[/code]
启动 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
[/code]
错误信息说找不到 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
[/code]
编辑一下这个配置文件:
vim php-fpm.conf
pid = run/php-fpm.pid
user = www
group = www
[/code]
再次尝试启动:
/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
[/code]
好,那我们新建www 用户组:
groupadd www
useradd -g www www
[/code]
再次启动:
/usr/local/php/sbin/php-fpm
没有任何的输出,表示成功了!!!
php-fpm占用的是9000端口,我们查看下进程:
[root@localhost php-5.4.11]#ps -ef|grep php-fpm
root 1377 1231 0 11:19 pts/1 00:00:00 grep php-fpm
root 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 www
www 29251 29249 0 06:22 ? 00:00:00 php-fpm: pool www
root 32132 6158 0 08:25 pts/2 00:00:00 vi php-fpm.conf
[/code]
[root@localhost php-5.4.11]#netstat -tnl | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
[root@localhost php-5.4.11]#
[/code]
好,安装和启动都OK了。
开机启动 php-fpm
之前接说过php-fpm是独立于web服务器和php之前的一层服务器,所以,我们需要开机启动它开机启动的配置文件是:
/etc/rc.local,加入
/usr/local/php/sbin/php-fpm即可
[root@localhost 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
[/code]
光安装好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`
相关文章推荐
- PHP初学之常量
- Yii调试时,Undefined offset:xxx解决方法
- PDO参数化查询
- PHP isset 函数作用
- php反射方法信息
- getAttribute和getParameter的区别
- PHP编译过程中常见错误信息的解决方法
- PHP数组函数(5)
- PHP 底层的运行机制与原理
- PHP java移位运算符
- PHP 性能优化
- PHP访问MySql数据库 初级篇
- PHP的curl库代码使用
- PHP连接MySQL数据库
- xntp的配置
- phpMySQL录入数据
- PHP编程中10个最常见的错误
- BusyBox下ftpget的使用方法
- 对比分析php中Cookie与Session的异同
- PHP数组函数(4)