今天搭建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的问题全部解决