linux php7-fpm啟動失敗如何解決

linux php7-fpm啟動失敗的解決辦法:1、修改“php-fpm.conf”文件中的“Error_log”項(xiàng);2、修改php的配置文件位置;3、將nginx修改為當(dāng)前系統(tǒng)的用戶名;4、直接創(chuàng)建nginx用戶和用戶組即可。

php-fpm啟動失敗的解決(centos安裝PHP后)

在centOS7.0上編譯安裝php7.2.1后,因?yàn)樾录恿藀hp擴(kuò)展,所以需要重啟php-fpm;

一、首先說一下我的配置,關(guān)于配置 php-fpm:

剛開始安裝后,這幾個(gè)文件是沒有的,需要逐個(gè)cp創(chuàng)建,然后啟動即可,如果沒有報(bào)錯,則不用看 “二、php-fpm 啟動報(bào)錯:”

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

1、關(guān)于配置 php-fpm

cp?php.ini-development?/usr/local/php7/etc/php.ini cp?/usr/local/php7/etc/php-fpm.conf.default?/usr/local/php7/etc/php-fpm.conf cp?/usr/local/php7/etc/php-fpm.d/www.conf.default?/usr/local/php7/etc/php-fpm.d/www.conf

2、

啟動php-fpm:

/usr/local/php/sbin/php-fpm

二、php-fpm 啟動報(bào)錯:

原因及解決辦法:

1、直接運(yùn)行,有報(bào)錯找不到配置文件。

$?php-fpm  [11-Jan-2014?16:03:03]?ERROR:?failed?to?open?configuration?file?'/private/etc/php-fpm.conf':?No?such?file?or?directory?(2) [11-Jan-2014?16:03:03]?ERROR:?failed?to?load?configuration?file?'/private/etc/php-fpm.conf' [11-Jan-2014?16:03:03]?ERROR:?FPM?initialization?failed

可以在/private/etc/ 目錄下生成配置文件,需要root權(quán)限(sudo)

或者在普通用戶有權(quán)限的目錄里放置配置文件,通過–fpm-config參數(shù)指定配置文件的位置,如下:

#?cp?/private/etc/php-fpm.conf.default?/etc/php-fpm.conf $?php-fpm?--fpm-config?/etc/php-fpm.conf [11-Jan-2014?16:10:49]?ERROR:?failed?to?open?error_log?(/usr/var/log/php-fpm.log):?No?such?file?or?directory?(2) [11-Jan-2014?16:10:49]?ERROR:?failed?to?post?process?the?configuration [11-Jan-2014?16:10:49]?ERROR:?FPM?initialization?failed

錯誤信息顯示:不能正確的打開”日志“文件,原因是默認(rèn)在/usr/var目錄下工作,可以修改配置文件指定正確的日志文件路徑

$?vim?/usr/local/etc/php-fpm.conf

修改php-fpm.conf文件中的error_log項(xiàng),默認(rèn)前綴是/usr/var ,但并沒有這個(gè)路徑

error_log?=?/usr/local/var/log/php-fpm.log pid?=?/usr/local/var/run/php-fpm.pid

或者不修改配置文件中配置項(xiàng)的路徑,在php-fpm的運(yùn)行參數(shù)中(-p)指定放置運(yùn)行時(shí)文件的相對路徑前綴

$?php-fpm?--fpm-config?/php-fpm.conf??--prefix?/usr/local/var

到此,php-fpm守護(hù)進(jìn)程已經(jīng)基本可以正確的啟動了。

報(bào)錯信息:

[12-Jul-2013?17:18:57]?ERROR:?[/usr/local/php5/etc/php-fpm.conf:144]?value?is?NULL?for?a?ZEND_INI_PARSER_ENTRY [12-Jul-2013?17:18:57]?ERROR:?failed?to?load?configuration?file?'/usr/local/php5/etc/php-fpm.conf' [12-Jul-2013?17:18:57]?ERROR:?FPM?initialization?failed

2、出錯的原因主要是/usr/local/php5/sbin/php-fpm配置錯誤,仔細(xì)檢查下。我的錯誤就是group = www這里少了=號。所以出錯了

[root@localhost?~]#?/usr/local/php5/sbin/php-fpm PHP:??syntax?error,?unexpected?TC_STRING?in?/usr/local/php5/etc/php.ini?on?line?211

3、啟動php-fpm 報(bào)錯ERROR: [pool www] cannot get uid for user ‘nginx’

方法一:

當(dāng)編譯好php7之后用以下命令啟動

/usr/local/php/sbin/php-fpm

然后報(bào)出這樣的錯誤:

[07-Dec-2018?17:59:31]?ERROR:?[pool?www]?cannot?get?uid?for?user?'nginx' [07-Dec-2018?17:59:31]?ERROR:?FPM?initialization?failed

修改php的配置文件位置在www.conf

vi?/usr/local/php/etc/php-fpm.d/www.conf

將nginx修改為當(dāng)前系統(tǒng)的用戶名如下:

;?Unix?user/group?of?processes ?;?Note:?The?user?is?mandatory.?If?the?group?is?not?set,?the?default?user's?group ?;???????will?be?used. ?user?=?www.emam.cn ?group?=?www.emam.cn

方法二:

直接創(chuàng)建nginx用戶和用戶組

useradd?nginx groupadd?nginx usermod?-G?nginx?nginx

三、php-fpm 內(nèi)容擴(kuò)展

啟動php-fpm:

/usr/local/php/sbin/php-fpm

php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,所以不要再看這種老掉牙的命令了,需要使用信號控制:

master進(jìn)程可以理解以下信號

int, TERM 立刻終止

QUIT 平滑終止

USR1 重新打開日志文件

USR2 平滑重載所有worker進(jìn)程并重新載入配置和二進(jìn)制模塊

一個(gè)簡單直接的重啟方法:

先查看php-fpm的master進(jìn)程號

#?ps?aux|grep?php-fpm root?????21891??0.0??0.0?112660???960?pts/3????R+???16:18???0:00?grep?--color=auto?php-fpm root?????42891??0.0??0.1?182796??1220??????????Ss???4月18???0:19?php-fpm:?master?process?(/usr/local/php/etc/php-fpm.conf) nobody???42892??0.0??0.6?183000??6516??????????S????4月18???0:07?php-fpm:?pool?www nobody???42893??0.0??0.6?183000??6508??????????S????4月18???0:17?php-fpm:?pool?www

重啟php-fpm:

kill?-USR2?42891

OK了。

上面方案一般是沒有生成php-fpm.pid文件時(shí)使用,如果要生成php-fpm.pid,使用下面這種方案:

上面master進(jìn)程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf這個(gè)配置文件,cat /usr/local/php/etc/php-fpm.conf 發(fā)現(xiàn):

[global] ;?Pid?file ;?Note:?the?default?prefix?is?/usr/local/php/var ;?Default?Value:?none ;pid?=?run/php-fpm.pid

pid文件路徑應(yīng)該位于/usr/local/php/var/run/php-fpm.pid,由于注釋掉,所以沒有生成,我們把注釋去除,再kill -USR2 42891 重啟php-fpm,便會生成pid文件,下次就可以使用以下命令重啟,關(guān)閉php-fpm了:

php-fpm 關(guān)閉:

kill?-INT?'cat?/usr/local/php/var/run/php-fpm.pid'

php-fpm 重啟:

kill?-USR2?'cat?/usr/local/php/var/run/php-fpm.pid'

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享