![PHP-FPM - 오류 503 - Unix 도메인 소켓 연결 시도가 실패했습니다.](https://rvso.com/image/717734/PHP-FPM%20-%20%EC%98%A4%EB%A5%98%20503%20-%20Unix%20%EB%8F%84%EB%A9%94%EC%9D%B8%20%EC%86%8C%EC%BC%93%20%EC%97%B0%EA%B2%B0%20%EC%8B%9C%EB%8F%84%EA%B0%80%20%EC%8B%A4%ED%8C%A8%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
서버에서 다음 오류가 발생합니다(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/
?