php-fpm的安装和启动

在前面我学习过了php中的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种方式可以找到之前的编译参数:

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

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


  1. [root@localhost /]# cd /lamp/php-5.4.11 & vi config.nice
  2. './configure' \
  3. '--prefix=/usr/local/php' \
  4. '--with-config-file-path=/usr/local/php/etc/' \
  5. '--with-apxs2=/usr/local/apache/bin/apxs' \
  6. '--with-mysql=/usr/local/mysql/' \
  7. '--with-libxml-dir=/usr/local/libxml2/' \
  8. '--with-png-dir=/usr/local/libpng/' \
  9. '--with-jpeg-dir=/usr/local/jpeg8/' \
  10. '--with-freetype-dir=/usr/local/freetype/' \
  11. '--with-gd=/usr/local/gd/' \
  12. '--with-zlib-dir=/usr/local/zlib/' \
  13. '--with-mcrypt=/usr/local/libmcrypt/' \
  14. '--with-mysqli=/usr/local/mysql/bin/mysql_config' \
  15. '--enable-soap' \
  16. '--enable-mbstring=all' \
  17. '--enable-sockets' \

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


  1. [root@localhost /]# cd /lamp/php-5.4.11
  2. [root@localhost php-5.4.11]# './configure' \
  3. '--prefix=/usr/local/php' \
  4. '--with-config-file-path=/usr/local/php/etc/' \
  5. '--with-apxs2=/usr/local/apache/bin/apxs' \
  6. '--with-mysql=/usr/local/mysql/' \
  7. '--with-libxml-dir=/usr/local/libxml2/' \
  8. '--with-png-dir=/usr/local/libpng/' \
  9. '--with-jpeg-dir=/usr/local/jpeg8/' \
  10. '--with-freetype-dir=/usr/local/freetype/' \
  11. '--with-gd=/usr/local/gd/' \
  12. '--with-zlib-dir=/usr/local/zlib/' \
  13. '--with-mcrypt=/usr/local/libmcrypt/' \
  14. '--with-mysqli=/usr/local/mysql/bin/mysql_config' \
  15. '--enable-soap' \
  16. '--enable-mbstring=all' \
  17. '--enable-sockets' \
  18. '--enable-fpm'
  19. [root@localhost php-5.4.11] make && make install

启动 php-fpm

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

启动命令是:

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

报错了:


  1. [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)
  2. [26-Feb-2015 15:39:55] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
  3. [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


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

编辑一下这个配置文件:


  1. vim php-fpm.conf
  2. pid = run/php-fpm.pid
  3. user = www
  4. group = www

再次尝试启动:

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

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


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

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


  1. groupadd www
  2. useradd -g www www

再次启动:

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

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

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


  1. [root@localhost php-5.4.11]# ps -ef|grep php-fpm
  2. root 1377 1231 0 11:19 pts/1 00:00:00 grep php-fpm
  3. root 29249 1 0 06:22 ? 00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
  4. www 29250 29249 0 06:22 ? 00:00:00 php-fpm: pool www
  5. www 29251 29249 0 06:22 ? 00:00:00 php-fpm: pool www
  6. root 32132 6158 0 08:25 pts/2 00:00:00 vi php-fpm.conf

  1. [root@localhost php-5.4.11]# netstat -tnl | grep 9000
  2. tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
  3. [root@localhost php-5.4.11]#

好,安装和启动都OK了。

开机启动 php-fpm

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

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


  1. [root@localhost init]# vi /etc/rc.local
  2. 1 #!/bin/sh
  3. 2 #
  4. 3 # This script will be executed *after* all the other init scripts.
  5. 4 # You can put your own initialization stuff in here if you don't
  6. 5 # want to do the full Sys V style init stuff.
  7. 6
  8. 7 touch /var/lock/subsys/local
  9. 8 /usr/local/apache/bin/apachectl start
  10. 9 /usr/local/bin/redis-server /etc/redis.conf
  11. 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`
时间: 2024-12-29 00:32:25

php-fpm的安装和启动的相关文章

windows 7中出现“为了配置TCP/IP,必须安装并启动网络适配卡”的问题

现象:在win7下试图配置静态ip地址的时候弹出了"为了配置TCP/IP,必须安装并启动网络适配卡"的消息.网卡型号是Intel 82578DM 原因:应该是由于网卡驱动安装出现问题导致的 解决办法:在设备管理器中卸载网卡后重新安装 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/home/ 1.在设备管理器中卸载网卡 2. 右键单击网络适配器,选择扫描硬件设备改动,自动重新安装硬件.之后网卡会自动安装,安装成功后

MySQL在ArchLinux上的安装与启动

[导读]本文详细介绍了MySQL在ArchLinux上的安装与启动问题. 在ArchLinux上我们可以很容易的来安装MySQL.我们可以通过下面的命令来安装: pacman -Sv mysql 只是这样的一个简单命令,我们就可以在我们的系统安装上最新的MySQL数据库了.当然我们还要做一些下面的工作,才可以使得我们的MySQL服务器可以启动起来. 首先我们要添加mysql用户与组,我们可以通过下面的命令来做到: groupadd mysql (添加mysql组) useradd -g mysq

怎么使用U盘/移动硬盘安装EFI启动方式的win8.1系统

EFI启动已经越来越被大家推崇了,尤其是笔记本电脑,大多数的近期主流主板一般都是支持UEFI启动的,所谓UEFI启动就是使用U盘制作的 EFI启动盘,这种启动方式的速度更快更安全,关于UEFI启动,笔者曾在前面的文章做过讲述,如果需要的话,请查看下面的相关阅读,今天亦是美网络主要以实例给大家讲讲如何安装efi启动的win8.1系统. 在开始前,先声明下我的环境: 华硕笔记本,两个磁盘,一个是mSATA 64G固态硬盘(需要重新格式化),一个是1TB 2.5寸普通机械硬盘,先将SSD固态硬盘格式化

怎样安装u启动win7PE系统维护工具箱到电脑本地系统盘?

  首先接着上述所说的完成安装到电脑里面以后运行了主程序,打开主程序有两种模式(选择安装位置)可供大家选择:(如下图所示) ①电脑本地系统盘; ②移动磁盘(u盘); 现在我们点击勾选"电脑本地系统盘",如下图所示: 正如上图所示当勾选好"电脑本地系统盘"以后,再点击"开始安装"按钮即可,那么接下来就会出现一个确定安装的提示窗口,此时我们只需点击"确定"按钮继续即可!如下图所示: 如上图所示,当点击完"确定"

Redis开发与运维. 1.5 正确安装并启动Redis

1.5 正确安装并启动Redis 通常来说,学习一门技术最好的方法就是实战,所以在学习Redis这样一个实战中产生的技术时,首先把它安装部署起来,值得庆幸的是,相比于很多软件和工具部署步骤繁杂,Redis的安装不得不说是非常简单,本节我们将学习如何安装Redis. 在写本书时,Redis 4.0已经发布RC版,但是大部分公司还都在使用3.0或更早的版本(2.6或2.8),本书所讲的内容基于Redis 3.0. 1.5.1 安装Redis 1.?在Linux上安装Redis Redis能够兼容绝大

SVN安装与启动服务

SVN安装与启动服务   一.安装 首先下载一个SubVersion,和TortoiseSVN.前者是svn的服务器端,后者是svn的客户端.注意服务器端得版本和客户端得版本一定要一致才可以,否则会出现错误: Error * 期望文件系统格式"2":发现格式"3" 使用subversion过程中出现 Error * 期望文件系统格式"2":发现格式"3"错误,这是服务器程序subversion和客户端程序TortoiseSVN

postgresql.9.3新安装的启动服务时提示服务启动后停止

问题描述 postgresql.9.3新安装的启动服务时提示服务启动后停止 2013-12-16 17:23:49 HKT 日誌: 資料庫系統在復原 2013-12-16 16:51:29 HKT 時被關閉2013-12-16 17:23:49 HKT 日誌: WAL file is from different database system: WAL file database system identifier is 5957907599934275429 pg_control datab

Linux系统下Oracle数据库的安装和启动关闭操作教程_oracle

1.准备: df -H   查看空间剩余   一般准备最少5G 2.查看swap分区大小 du -sh /tmp/     最少400M 3. 建组建用户 groupadd dba -g 111 groupadd oinstall -g 110 useradd oracle -u -110 -g 110 -G 111 passwd oracle --stdin 4. 设置参数 su - oracle vi .bash_profile export ORACLE_BASE=/u01/oracle

python-cloudera manager离线安装离线安装,启动agen t失败

问题描述 cloudera manager离线安装离线安装,启动agen t失败 在log目录下的agent目录下看到提示: /opt/cm-4.8.1/sbin/cmf-agent: line 34: /opt/cm-4.8.1/lib64/cmf/agent/build/env/ bin/python: cannot execute binary file /opt/cm-4.8.1/sbin/cmf-agent: line 34: /opt/cm-4.8.1/lib64/cmf/agent