PHP-FPM - 오류 503 - Unix 도메인 소켓 연결 시도가 실패했습니다.

PHP-FPM - 오류 503 - Unix 도메인 소켓 연결 시도가 실패했습니다.

서버에서 다음 오류가 발생합니다(CentOs 7).

[proxy:debug] proxy_util.c(2209): [client 80.251.245.153:61902] AH00944: connecting fcgi://127.0.0.1/data/webs/dev/index.php to 127.0.0.1:8000
[proxy:debug] proxy_util.c(2246): [client 80.251.245.153:61902] AH02545: fcgi: has determined UDS as /tmp/php56-fpm.sock
[proxy:debug] proxy_util.c(2418): [client 80.251.245.153:61902] AH00947: connected /data/webs/dev/index.php to httpd-UDS:0
[proxy:error] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /tmp/php56-fpm.sock (*) failed
[proxy_fcgi:error] AH01079: failed to make connection to backend: httpd-UDS
[proxy:debug] proxy_util.c(2171): AH00943: FCGI: has released connection for (*)

소켓이 존재합니다. 권한을 777로 변경하려고 시도했지만 작동하지 않습니다.

 ls -l /tmp/php56-fpm.sock
-rw-rw----. 1 apache apache 0 Feb 17 16:11 /tmp/php56-fpm.sock

PHP-FPM www.conf 듣기 설정(전체 파일은 여기에 있습니다:https://pastebin.com/uD5GsMna):

듣기=/tmp/php56-fpm.sock

가상호스트:

<VirtualHost *:80>
   ServerName dev.stavebninyfranek.com
   DocumentRoot "/data/webs/dev"
   <FilesMatch "\.php$">
     SetHandler  "proxy:unix:/tmp/php56-fpm.sock|fcgi://127.0.0.1"
   </FilesMatch> 
 </VirtualHost>

내 구성 파일은 (httpd.conf)입니다.https://pastebin.com/XS6cDuFQ

소켓을 변경하고 apache:apache 사용자에 대한 권한을 변경하려고 시도했지만 문제가 어디에 있는지 모르겠습니다.

감사해요

답변1

이는 잠재적으로 Apache의 시스템 구성으로 인해 발생합니다. 예를 들어 Centos 7에서는 기본적으로 서비스가 다음으로 구성됩니다.

PrivateTmp=true

즉, /tmp에 있는 자체 하위 디렉터리를 /tmp로 표시하므로 다른 프로그램에서 추가한 /tmp에 있는 파일을 볼 수 없습니다. 해결책은 php-fpm 소켓에 /tmp를 사용하지 않는 것입니다(위를 false로 설정하는 것보다 더 안전합니다).

(적어도 한 번은 Debian 파생 제품이 사용 중이지만 systemd도 사용하고 있다는 것을 알고 있습니다!)

폴리.

답변2

사용자 및 그룹을 현재 Apache 사용자로 변경하십시오.

/etc/php-fpm.d/www.conf 

** 사용자와 그룹은 동일해야 합니다./etc/http/conf/http.conf

그런 다음 실행

chown -R user.user /run/php-fpm/www.conf

** 사용자로 변경

저는 데비안 사용자이기 때문에 위의 내용은 centOS에 대한 것이라고 생각합니다. 이는 실제로 php8 양말 권한 문제로 인해 발생하는 '503 오류 서비스 이용 불가' 문제에 대한 해결 방법 중 하나입니다. 따라서 아파치의 양말은 다음 위치에 있습니다.

chown -R user.user /var/run/php/php8.1-fpm.sock

답변3

Apache를 2.4.10에서 2.4.24로 업데이트한 후에도 동일한 문제가 발생했습니다. 이전 Apache에서는 fcgi에 대한 연결이 의 소켓과 작동했지만 /tmp새 Apache에서는 오류가 발생했습니다 (2)No such file or directory. 소켓을 이동하여 /var/run문제를 해결했습니다.

의 소스 코드를 살펴보면 mod_proxy최신 아파치에서 경로가 로 지정된 경로에 상대적이어야 한다는 것을 알았습니다 DefaultRuntimeDir. 내 구성에서는 이것이 설정되어 /etc/apache2/apache2.conf있으며 /etc/apache2/envvars.

답변4

나는이 문제를 해결했습니다.

/var/run/php5-fpm.sock

대신 /tmp/작동합니다. 그런데 왜 대신 다른 폴더를 사용할 수 없습니까 /var/run/?

관련 정보