>  기사  >  운영 및 유지보수  >  Linux php7-fpm 시작 실패를 해결하는 방법

Linux php7-fpm 시작 실패를 해결하는 방법

WBOY
WBOY앞으로
2023-05-13 22:40:092092검색

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을 다시 시작해야 합니다

;

1. 먼저 php-fpm 구성에 대해 이야기하겠습니다.

초기 설치 후에는 이 파일을 하나씩 생성한 다음 오류가 없으면 시작해야 합니다. , "2. 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

2.

원인 및 해결 방법:

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

루트 권한(sudo)이 필요한 /private/etc/ 디렉터리에 구성 파일을 생성하거나(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

오류 메시지는 다음과 같습니다. "log" 파일은 기본적으로 /usr/var 디렉터리에서 작동하기 때문입니다. 파일을 수정하여 올바른 로그 파일 경로를 지정하세요

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

php-fpm.conf 파일을 수정하세요. php-fpm에서 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 구성 오류입니다. 주의 깊게 확인하세요. 내 실수는 여기 그룹 = 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을 시작할 때 오류: [pool www] can get uid for user 'nginx'

방법 1:

php7을 컴파일한 후 다음 명령을 사용하여 시작하세요

<code><pre class="brush:php;toolbar:false">/usr/local/php/sbin/php-fpm</pre><code><pre class="brush:php;toolbar:false">[07-Dec-2018 17:59:31] ERROR: [pool www] cannot get uid for user &amp;#39;nginx&amp;#39; [07-Dec-2018 17:59:31] ERROR: FPM initialization failed</pre>

然后报出这样的错误:

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

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

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

将nginx修改为当前系统的用户名如下:

useradd nginx
groupadd nginx
usermod -G nginx nginx

方法二:

直接创建nginx用户和用户组

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

三、php-fpm 内容扩展

启动php-fpm:

<code><pre class="brush:php;toolbar:false"># 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</pre>

그런 다음 다음과 같은 오류가 보고됩니다.

kill -USR2 42891

www.conf

[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid
에서 PHP 구성 파일 위치를 수정하세요

nginx를 사용자 이름으로 수정하세요. 현재 시스템은 다음과 같습니다:

kill -INT &#39;cat /usr/local/php/var/run/php-fpm.pid&#39;

방법 2:

nginx 사용자 및 사용자 그룹을 직접 생성

kill -USR2 &#39;cat /usr/local/php/var/run/php-fpm.pid&#39;

세 번째, php-fpm 콘텐츠 확장

php-fpm 시작:

<code>rrreee

php 5.3. 3. 향후 php-fpm은 더 이상 /usr/local/php/sbin/php-fpm (start|stop|reload) 및 php-fpm에 있던 기타 명령을 지원하지 않습니다. 따라서 더 이상 이 구식 명령을 보지 마십시오. 신호 제어를 사용해야 합니다.

마스터 프로세스는 다음 신호를 이해할 수 있습니다.

INT, TERM 즉시 종료

QUIT 원활하게 종료

USR1 로그 파일 다시 열기

USR2 모든 작업자 프로세스를 원활하게 다시 로드하고 구성 및 바이너리 모듈을 다시 로드합니다.

한 가지 간단하고 직접적인 다시 시작 방법:

먼저 php-fpm의 마스터 프로세스 번호를 확인하세요🎜rrreee🎜php-fpm을 다시 시작하세요:🎜rrreee🎜OK. 🎜🎜위 해결 방법은 일반적으로 php-fpm.pid 파일이 생성되지 않을 때 사용됩니다. php-fpm.pid를 생성하려면 다음 해결 방법을 사용하세요. 🎜🎜위의 마스터 프로세스에서 볼 수 있듯이 matster는 다음을 사용합니다. /usr/local/ php/etc/php-fpm.conf 구성 파일의 경우 cat /usr/local/php/etc/php-fpm.conf가 발견되었습니다. 🎜rrreee🎜pid 파일 경로는 /usr/local에 있어야 합니다. /php/var/run/php -fpm.pid, 주석 처리되었기 때문에 생성되지 않습니다. 주석을 제거한 다음 -USR2 42891을 종료합니다. php-fpm을 다시 시작하면 다음에 pid 파일이 생성됩니다. , 다음 명령을 사용하여 php-fpm을 다시 시작하고 닫을 수 있습니다: 🎜 🎜php-fpm shutdown: 🎜rrreee 🎜php-fpm restart: 🎜rrreee

위 내용은 Linux php7-fpm 시작 실패를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제