linux无法安装php-fpm,Linux下的php-fpm相关问题解决

今天搭建LNMP环境时,在安装PHP编译的时候出现了问题,首先在解压安装包后配置检测环境

./configure --prefix=/usr/local/php \

--with-gd \

--enable-gd-native-ttf \

--enable-mysqlnd \

--with-mysql=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-openssl \

--enable-mbstring \

--enable-fpm

其中 --enable-fpm 是必须要的,因为它要使 PHP 作为独立的进程来运行(默认占据 9000 端口,在LAPM中PHP一般是作为apache的模块使用,继续上面的来,然后make(编译)的时候出现了问题,出现下面的错误

make: *** [sapi/fpm/php-fpm] Error 1

百度了很久,基本上是2种解决情况

1.首先如果在./configure中iconv扩展的话,先把它去掉在make下如果通过了的话,说明是iconv已经安装过了或者装了多个iconv,因为我自己确定我的./configure中本身就没有iconv的扩展所以这种情况我就可以排除了

2.在make中止后make clean、rm -f Makefile删除编译过的文件,然后重新用 ./configure --。。。。配置,然后在 make 命令加 ZEND_EXTRA_LIBS='-liconv'进行编译:make ZEND_EXTRA_LIBS='-liconv'

3.如果上面2种情况没还是没解决的话需要注意了,可以多重试几次,如果出现了Don't forget to run 'make test'.也可以直接make install了

到这make的问题基本解决

启动php-fpm的时候又出了问题Unable to open file '/usr/local/php/etc/php-fpm.conf', errno=2,大概意思就是/usr/local/php/etc/下没哟哟php-fpm配置文件,可以直接通过find / -name php-fpm.conf找到配置文件然后复制/usr/local/php/etc/下解决:cp /root/data/php-5.3.6/sapi/fpm/php-fpm.conf /usr/local/php/etc/,配置文件有了后启动又报错了,[pool www] pm.min_spare_servers(0) must be a positive value,打开之前复制过去的php-fpm.conf配置文件,将下面的配置替换掉源文件中的配置,就解决了

# vi /usr/local/php/etc/php-fpm.conf

pm.start_servers=20

pm.min_spare_servers=5

pm.max_spare_servers=35

最后启动成功后可以通过ps aux|grep php检测php-fpm启动成功没,启动成功了的话会出现如下的代码

root 12252 0.0 0.2 21564 2456 ? Ss 23:03 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)

nobody 12253 0.0 0.2 21556 2064 ? S 23:03 0:00 php-fpm: pool www

nobody 12254 0.0 0.2 21556 2064 ? S 23:03 0:00 php-fpm: pool www

nobody 12255 0.0 0.2 21556 2064 ? S 23:03 0:00 php-fpm: pool www

nobody 12256 0.0 0.2 21556 2064 ? S 23:03 0:00 php-fpm: pool www

至此关于php-fpm的问题全部解决

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
周一又是新的开始!所有事情都按照往常的节奏按部就班,有条不紊的进行着。首先是检查下各网站及应用系统是否正常,然后看看日志信息是否也有异样,一圈下来结果跟以前差一样没有其它问题。   今天唯独没有像往一样,上线之后并没打开系统监控(平时都是用SecureCRT登录系统之后,打开TOP命令让它一直在线,偶尔看下)。到了早上10点多快11点的时候,随手又点击了一下网站,这下出现的画面让我为之一醒(不是一惊)   所 实话这个介面还真不多见,但跟这个相似的就是前后端连接超时也会出现一个提示页面,但内容不太一样。这下我就急了,难道被人黑了?因为最近老有朋友说他的 网站被挂马了,所以我一个冲上来的念头就是被人黑了。连忙SSH登录后台看看,最后的登录IP也是自己的,这才稍有点放心,是自己紧张过头了。   稍作冷静之后,再结合提示页面的信息,应该是系统服务出了问题而非被入侵造成。于是就从检查日志、进程、端口等方面着手展开排查,很快就在php-fpm.log日志文件有所发现   突然似乎想到了什 么,要检查下PID文件,因为在Linux下记录某个进程是否运行是通过生成一个对应的PID文件,写入当前的进程号作标识的。真是喜出望外呀~这个 pid文件是空的,虽然有这个名称的文件,但里边没有内容。所以就解释了为什么启动服务就说已经运行,停止它的时候说失败了。几经检查,发现用来启动 php-fpm的脚本写得不严密,只是在启动的时候检查是否有pid文件存在而不管它是否有真实的PID内容,才造成了启动、停止都不正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值