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

【Linux下的php-fpm相关问题解决】百度了很久,基本上是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启动成功没,启动成功了的话会出现如下的代码
root122520.00.2215642456 ?Ss23:030:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) nobody122530.00.2215562064 ?S23:030:00 php-fpm: pool www nobody122540.00.2215562064 ?S23:030:00 php-fpm: pool www nobody122550.00.2215562064 ?S23:030:00 php-fpm: pool www nobody122560.00.2215562064 ?S23:030:00 php-fpm: pool www

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

    推荐阅读