이런 경우 로그를 살펴보면 아래와 비슷한 메시지가 출력되고 있을 것입니다.

[crit] 3588#3588: *2 connect() to unix:/var/run/php/php8.3-fpm.sock failed
 (13: Permission denied) while connecting to upstream, 
 client: 121.XXX.140.XXX, server: xxx.moyo.pw, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.3-fpm.sock:",
  host: "xxx.moyo.pw:8080"

이 오류 메시지는 Nginx가 PHP-FPM 소켓에 연결하려고 할 때 권한 문제가 발생했음을 나타냅니다. 구체적으로는 Nginx 작업자 프로세스가 /var/run/php/php8.3-fpm.sock에 접근할 권한이 없다는 것입니다.

다음은 이 문제를 해결하는 방법입니다:

  1. PHP-FPM 구성 확인:PHP-FPM 풀 설정 파일이 올바르게 정의되었는지 확인하세요. 해당 파일은 일반적으로 /etc/php/8.3/fpm/pool.d/www.conf에 있습니다. 다음 설정을 확인하세요:ini
listen = /var/run/php/php8.3-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

listen.ownerlisten.group는 Nginx가 실행되는 사용자 및 그룹과 일치해야 합니다. 보통 Debian/Ubuntu 시스템에서는 둘 다 www-data입니다.

Nginx 구성 확인:

Nginx 구성 파일이 PHP-FPM 소켓을 사용하도록 올바르게 설정되었는지 확인하세요. 구성 파일은 보통 /etc/nginx/sites-available/default 또는 /etc/nginx/conf.d/default.conf에 있습니다. 다음 블록을 확인하세요:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}

소켓 파일의 권한 확인:

/var/run/php/php8.3-fpm.sock 소켓 파일의 권한이 올바른지 확인하세요. 다음 명령어로 확인할 수 있습니다:

ls -l /var/run/php/php8.3-fpm.sock

결과는 다음과 비슷해야 합니다:

srw-rw---- 1 www-data www-data 0 Jul 15 12:34 /var/run/php/php8.3-fpm.sock

권한 또는 소유자/그룹이 올바르지 않은 경우 다음 명령어로 변경할 수 있습니다:

sudo systemctl restart php8.3-fpm
sudo systemctl restart nginx

SELinux (적용되는 경우):

시스템에서 SELinux를 사용하는 경우 연결을 차단할 수도 있습니다. SELinux 상태는 다음 명령어로 확인할 수 있습니다:

sestatus

SELinux가 활성화되어 있는 경우, 적절한 컨텍스트를 설정하거나 일시적으로 비활성화하여 테스트해볼 수 있습니다:

sudo setsebool -P httpd_can_network_connect on

이 단계를 따르면 권한 거부 오류를 해결하고 Nginx와 PHP-FPM 설정을 올바르게 작동시킬 수 있을 것입니다.

#NGINX #PHP #PHP-FPM #PHP권한

Author: 모요
댓글

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

*

©2024 MOYO Blog with DAON Consulting Co,LTD.

CONTACT US

We're not around right now. But you can send us an email and we'll get back to you, asap.

보내는 중입니다..

로그인하세요.

계정 내용을 잊으셨나요 ?