今天搭建LNMP環(huán)境時(shí),在安裝PHP編譯的時(shí)候出現(xiàn)了問(wèn)題,首先在解壓安裝包后配置檢測(cè)環(huán)境
./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 是必須要的,因?yàn)樗?PHP 作為獨(dú)立的進(jìn)程來(lái)運(yùn)行(默認(rèn)占據(jù) 9000 端口,在LAPM中PHP一般是作為apache的模塊使用,繼續(xù)上面的來(lái),然后make(編譯)的時(shí)候出現(xiàn)了問(wèn)題畏妖,出現(xiàn)下面的錯(cuò)誤
make: *** [sapi/fpm/php-fpm] Error 1
百度了很久,基本上是2種解決情況
1.首先如果在./configure中iconv擴(kuò)展的話,先把它去掉在make下如果通過(guò)了的話蹲嚣,說(shuō)明是iconv已經(jīng)安裝過(guò)了或者裝了多個(gè)iconv,因?yàn)槲易约捍_定我的./configure中本身就沒(méi)有iconv的擴(kuò)展所以這種情況我就可以排除了
2.在make中止后make clean、rm -f Makefile刪除編譯過(guò)的文件悯嗓,然后重新用 ./configure --。妄辩。春瞬。。配置鸭津,然后在 make 命令加 ZEND_EXTRA_LIBS='-liconv'進(jìn)行編譯:make ZEND_EXTRA_LIBS='-liconv'
3.如果上面2種情況沒(méi)還是沒(méi)解決的話需要注意了彤侍,可以多重試幾次,如果出現(xiàn)了Don't forget to run 'make test'.
也可以直接make install了
到這make的問(wèn)題基本解決
啟動(dòng)php-fpm的時(shí)候又出了問(wèn)題Unable to open file '/usr/local/php/etc/php-fpm.conf', errno=2
,大概意思就是/usr/local/php/etc/下沒(méi)喲喲php-fpm配置文件逆趋,可以直接通過(guò)find / -name php-fpm.conf
找到配置文件然后復(fù)制/usr/local/php/etc/下解決:cp /root/data/php-5.3.6/sapi/fpm/php-fpm.conf /usr/local/php/etc/
盏阶,配置文件有了后啟動(dòng)又報(bào)錯(cuò)了,[pool www] pm.min_spare_servers(0) must be a positive value
,打開(kāi)之前復(fù)制過(guò)去的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
最后啟動(dòng)成功后可以通過(guò)
ps aux|grep php
檢測(cè)php-fpm啟動(dòng)成功沒(méi),啟動(dòng)成功了的話會(huì)出現(xiàn)如下的代碼
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
至此關(guān)于php-fpm的問(wèn)題全部解決