您好,登錄后才能下訂單哦!
這篇文章主要介紹“linux php7-fpm啟動失敗如何解決”,在日常操作中,相信很多人在linux php7-fpm啟動失敗如何解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux php7-fpm啟動失敗如何解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
linux php7-fpm啟動失敗的解決辦法:1、修改“php-fpm.conf”文件中的“error_log”項;2、修改php的配置文件位置;3、將nginx修改為當前系統的用戶名;4、直接創建nginx用戶和用戶組即可。
php-fpm啟動失敗的解決(centOS安裝PHP后)
在centOS7.0上編譯安裝php7.2.1后,因為新加了php擴展,所以需要重啟php-fpm;
一、首先說一下我的配置,關于配置 php-fpm:
剛開始安裝后,這幾個文件是沒有的,需要逐個cp創建,然后啟動即可,如果沒有報錯,則不用看 “二、php-fpm 啟動報錯:”
1、關于配置 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 啟動報錯:
原因及解決辦法:
1、直接運行,有報錯找不到配置文件。
$ 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權限(sudo)
或者在普通用戶有權限的目錄里放置配置文件,通過--fpm-config參數指定配置文件的位置,如下:
# 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
錯誤信息顯示:不能正確的打開”日志“文件,原因是默認在/usr/var目錄下工作,可以修改配置文件指定正確的日志文件路徑
$ vim /usr/local/etc/php-fpm.conf
修改php-fpm.conf文件中的error_log項,默認前綴是/usr/var ,但并沒有這個路徑
error_log = /usr/local/var/log/php-fpm.log
pid = /usr/local/var/run/php-fpm.pid
或者不修改配置文件中配置項的路徑,在php-fpm的運行參數中(-p)指定放置運行時文件的相對路徑前綴
$ php-fpm --fpm-config /php-fpm.conf --prefix /usr/local/var
到此,php-fpm守護進程已經基本可以正確的啟動了。
報錯信息:
[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配置錯誤,仔細檢查下。我的錯誤就是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 報錯ERROR: [pool www] cannot get uid for user 'nginx'
方法一:
當編譯好php7之后用以下命令啟動
/usr/local/php/sbin/php-fpm
然后報出這樣的錯誤:
[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修改為當前系統的用戶名如下:
; 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
方法二:
直接創建nginx用戶和用戶組
useradd nginx
groupadd nginx
usermod -G nginx nginx
三、php-fpm 內容擴展
啟動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進程可以理解以下信號
INT, TERM 立刻終止
QUIT 平滑終止
USR1 重新打開日志文件
USR2 平滑重載所有worker進程并重新載入配置和二進制模塊
一個簡單直接的重啟方法:
先查看php-fpm的master進程號
# 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文件時使用,如果要生成php-fpm.pid,使用下面這種方案:
上面master進程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf這個配置文件,cat /usr/local/php/etc/php-fpm.conf 發現:
[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid
pid文件路徑應該位于/usr/local/php/var/run/php-fpm.pid,由于注釋掉,所以沒有生成,我們把注釋去除,再kill -USR2 42891 重啟php-fpm,便會生成pid文件,下次就可以使用以下命令重啟,關閉php-fpm了:
php-fpm 關閉:
kill -INT 'cat /usr/local/php/var/run/php-fpm.pid'
php-fpm 重啟:
kill -USR2 'cat /usr/local/php/var/run/php-fpm.pid'
到此,關于“linux php7-fpm啟動失敗如何解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。