php-fpm的安装和启动

转载 2015年11月18日 17:15:44

安装 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' \

加上--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.conf
pid = run/php-fpm.pid
user = www
group = 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 www
useradd -g www www

再次启动:

/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
[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]# 

好,安装和启动都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

光安装好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


这里写图片描述

PHP5.6中php-fpm的配置、启动、关闭和重启

该文主要讲述:如何配置php-fpm、常见报错解决方法和php-fpm的启动、关闭和重启。 LNMP环境中的nginx是不支持php的,需要通过fastcgi插件来处理有关php的请求。而php需要p...
  • Field_Yang
  • Field_Yang
  • 2016年09月01日 17:33
  • 29566

php-fpm – 启动参数及重要配置详解

约定几个目录 /usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini ...
  • dazhi_100
  • dazhi_100
  • 2016年03月09日 18:16
  • 1642

linux下php-fpm的启动和关闭

查看php-fpm的地址 whereis php-fpm 启动php-fpm /usr/local/php5/sbin/php-fpm     #  /usr/local/php5/为php-...
  • u010716097
  • u010716097
  • 2017年05月13日 21:09
  • 7495

php-fpm的安装和启动

在前面我学习过了php中的mod_php模式和mode_fastcgi和php-fpm模式:地址,中大致的讲述了几种模式的区别,也明白了php-fpm是fastcgi模式的管理器。今天就来看下php如...
  • u010098331
  • u010098331
  • 2016年02月19日 11:25
  • 462

php-fpm安装、配置与优化

转载自:https://www.zybuluo.com/phper/note/89081 1、php中fastcgi和php-fpm是什么东西 最近在研究和学习php的性能方面的知识,看到...
  • ivan820819
  • ivan820819
  • 2017年02月10日 14:44
  • 7316

nginx,php-fpm的安装配置

在centos7.2的系统下安装nginx和php-fpmnginx安装yum install -y nginx即可完成安装配置由于之前项目使用的是apache,所以项目目录在var/www/html...
  • qq_34627459
  • qq_34627459
  • 2017年05月13日 19:54
  • 2253

Nginx + PHP(php-fpm) 安装以及配置

这篇文章写了两次,真悲催,保存提示成功,刷新页面后,啥都找不着了原来在草稿箱。 一、虚拟机Linux(CentOS7)的安装以及网络设置 1.新建虚拟机的网络设置,采用桥接模式,分配局域网内的独立ip...
  • redvesper
  • redvesper
  • 2017年02月20日 11:48
  • 623

php-fpm的安装与测试

一、下载并安装PHP 1.编译安装 下载php:wget  执行./configure tar -jxvf  ./configure --enable-fpm make make tes...
  • junli_chen
  • junli_chen
  • 2017年04月17日 15:30
  • 305

PHP-FPM配置及使用总结

PHP-FPM是一个PHP FastCGI的管理器,它实际上就是PHP源代码的补丁,旨在将FastCGI进程管理引进到PHP软件包中,我们必须将其patch到PHP源代码中,然后再行编译才能使用。而现...
  • why_2012_gogo
  • why_2012_gogo
  • 2016年04月10日 13:33
  • 14643

如何用supervisor守护php-fpm主进程以实现php-fpm的自动重启

最近有同事有个针对php-fpm进程的监护需求,也即:如果php-fpm的master进程意外退出(可能是crash,也可能是被误kill),那么希望master进程能被自动拉起,以免中断服务。我们知...
  • slvher
  • slvher
  • 2015年07月18日 22:17
  • 4710
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php-fpm的安装和启动
举报原因:
原因补充:

(最多只允许输入30个字)