PHP7을 사용하는 fastcgi_pass에 대한 권한 거부


19

PHP7.0에서 LEMP를 실행하고 있습니다.

내 서버 블록에 이것을 가지고 있습니다.

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

그러나 사이트를 열면 502 Bad Gateway가 반환됩니다. 아래는 오류 로그입니다.

*1 connect() to unix:/var/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: example.com, request: "GET / HTTP1.1", upstream: "fsatcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "example.com"

Permission Denied 라고 합니다. 무슨 일이야? 확인했지만 어떤 종류의 권한을 부여해야하는지 찾을 수없는 것 같습니다.

감사합니다.

답변:


27

나는 그것을 작동시켰다.

PHP 사용자는 www-datanginx 사용자였습니다 nginx.

여기 PHP를 확인하십시오 : /etc/php/7.0/fpm/pool.d/www.conf

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

Nginx 사용자는 /etc/nginx/nginx.conf

이것은 나를 안내했다 : /programming/23443398/nginx-error-connect-to-php5-fpm-sock-failed-13-permission-denied


8
www-data 사용자 를 사용하도록 nginx를 변경 하거나, 내가 한 것처럼 nginx 사용자를 www-data 그룹에 추가 할 수 있습니다sudo usermod -a -G www-data nginx
chech

6

다음 단계를 수행하여 동일한 문제를 해결했습니다.

열려있는 www.conf의 listen.owner 및 listen.group을 설정 라인을 찾아, 마지막 : (sudo는 나노 /etc/php-fpm.d/www.conf 예)와 nginx를 "을"아무도 "에서 그 값을 변경 파일을 ":

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

마지막으로, 사용자와 그룹을 설정하고 해당 값을 "apache"에서 "nginx"로 변경하는 행을 찾으십시오.

user = nginx
group = nginx

php-fpm을 다시 시작하십시오 (sudo service php-fpm restart)


7
listen.mode = 0666- 이 취약점은 방대한 보안 취약점으로 소켓의 모든 데이터를 모든 사용자에게 노출시킵니다.
NotoriousPyro

2
vim /etc/php-fpm.d/www.conf
이런 식으로 변화
; listen.owner = 루트
; listen.group = 루트
; listen.owner = 아무도
; listen.group = 아무도

listen.owner = nginx
listen.group = nginx 

서비스 php-fpm restart
서비스 nginx 재시작

CentOS 릴리스 6.9 (최종)


2
사이트에 오신 것을 환영합니다! 설명 할 수없는 구성 스 니펫입니다. 질문에 어떻게 대답하는지 알 수 없습니다.
peterh-복 직원 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.