安装 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`

php-fpm安装,启动,重启相关推荐

  1. mac 安装/启动/重启/停止 nginx

    使用 Homebrew 进行安装: brew install nginx 结果展示: 检验安装成功与否: $ nginx -v nginx version: nginx/1.15.12 安装成功之后, ...

  2. Redis 安装 启动 连接 配置 重启

    Linux下安装 ]# wget http://download.redis.io/releases/redis-2.8.17.tar.gz ]# tar xzf redis-2.8.17.tar.g ...

  3. php fpm安装curl后,nginx出现connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied)的错误...

    这里选择直接apt-get安装,因为比起自己编译简单多了,不需要自己配置什么 #sudo apt-get install curl libcurl3 libcurl3-dev php5-curl 安装 ...

  4. 如何安装Windows操作系统?(二)安装启动项杂谈

    (二)安装启动项杂谈 上面说到过,如何去选择启动项和硬件的选择. 其实在硬件没有问题的情况下,只要有一个能启动的项目就可以安装系统了. 从BIOS给出的启动项,我们可以看到以下几个启动项 1.光盘/软 ...

  5. oracle查看登录时间黑屏,oracle 11g默认用户名、密码解锁 以及安装后重启黑屏问题.doc...

    oracle 11g默认用户名.密码解锁 以及安装后重启黑屏问题.doc 还剩 3页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 遇的同学,参考一下解 ...

  6. linux mysql 确认命令_LINUX启动/重启/停上MYSQL的命令(详解)

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld sta ...

  7. nginx启动重启与升级以及检测配置文件

    查看nginx的主进程号 ps -ef|grep nginx 从容停止nginx kill - QUIT nginx主进程号 或者 kill - QUIT nginx的pid文件所在,例如我的 [ro ...

  8. 使用nexus搭建maven私服(一)安装启动

    文章目录 maven私服搭建 nexus简介 nexus下载 nexus的安装&启动 小小修改一下配置文件并启动 安装并启动的两种方式 方式一: 解压cmd启动 方式二: 安装启动建议3.x使 ...

  9. 基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机

    [原文链接]基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机 文章目录 一.基础准备工作 二.自动创建基于dhcp自动获取ip地址的openEul ...

  10. linux双系统重启卡光标,Ubuntu 16.04安装完重启后黑屏,光标一直闪

    原文:https://blog.csdn.net/weixin_38533896/article/details/81023690 版权声明:本文为博主原创文章,转载请附上博文链接! 按照百度经验里面 ...

最新文章

  1. [云炬创业基础笔记]第六章商业模式测试17
  2. python中items属性的用法
  3. CSS3属性之resize
  4. Android界面菜单(4)—快捷菜单
  5. NHibernate Linq中Null值排序的解决方法
  6. HTML5 Canvas游戏开发(二)高级功能
  7. 【HDOJ】3500 Fling
  8. javax.servlet.http.HttpServletResponse.setContentLengthLong(J)V,maven项目报错!!无法访问webapp下的文件,完美解决方案
  9. brpc访问MySQL_怎么使用Swoft 搭建微服务(TCP RPC)PHP中高级进阶
  10. allegro设置规则
  11. 今日头条android+x86,GitHub - teajoyus/TouTiao: 今日头条 For Android
  12. Ubuntu Linux系统Google日语输入法跨平台版Mozc安装笔记
  13. C 二维数组,以及自定义二维数组
  14. Halcon轮廓提取
  15. 无线射频专题《射频信号,射频的传输行为,吸收,放射,散射,折射,衍射,损耗,增益,多径现象》
  16. matlab解rlc电路方程,RLC电路matlab仿真.pdf
  17. 飞猪、去哪儿网被列入大数据“杀熟”名单,超50%的人遭遇过被“杀熟”
  18. Git/Github工作流 (workflow)
  19. 带你解锁蓝牙skill(二)
  20. sqlalchemy.exc.ArgumentError: Mapper mapped class NewsLoog->news_loog could not assemble any primary

热门文章

  1. 攻防世界-MISC:glance-50
  2. Linux 编译找不到头文件
  3. es5 es6 互相转换
  4. 线性稳压电源和开关电源到底有什么区别
  5. Greenplum 实时数据仓库实践(6)——实时数据装载
  6. UE4 Matinee功能基本概念及简单示例(Sequence编辑器)
  7. 可口可乐、百事可乐都使用的包装黑科技,你Get到了吗?
  8. “一路向南,dream it possible”之旅--骑行从北京到成都(一)
  9. java开发常用注解汇总
  10. 注解以及Java中常用注解使用