Cent OS 8 Nginx + PHP 권한 에러 해결하기

이번에 Cent Os에서 LEMP 스택을 모두 설치하고 워드프레스를 구동중에 자꾸 Access denied. 가 나온것에 대한 트러블 슈팅이다.

일단 nginx의 에러로그를 확인하면 아래와 같이 나왔다.

nginx 로그같은경우 vi /etc/nginx/conf.d/default.conf 에러 error 경로에 따라 다르니 참고.

나같은경우 /var/log/nginx/web.error.log

[error] 6689#6689: *7 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0Unable to open primary script: /var/www/html/index.php (Permission denied)" while reading response header from upstream

마지막에 떡하니 Permission denied라고 적혀있다.(권한거부)
그래서 php-fpm의 설정에 들어가서 확인해봤는데(vi /etc/php-fpm.d/www.conf)

아래와 같이 모두 nginx 로 잘설정되어있음..

그럴경우 SELinux를 의심해봐야한다.(제일 늦게의심함 ㅠㅠ 하루 날렸다)

319건…

위 SELinux 에러같은경우 Cockpit으로 확인한것이므로 웹콘솔로 볼것을 추천한다.

SELinux Error 내용

  1. If you want to allow httpd to read user content
    You must tell SELinux about this by enabling the ‘httpd_read_user_content’ boolean.
    =>httpd가 사용자 컨텐츠를 읽도록 하려면 ‘httpd_read_user_content’를 활성화 시켜야함
  2. If you believe that php-fpm should be allowed read access on the index.php file by default.
    You should report this as a bug. You can generate a local policy module to allow this access.
    => php-fpm 이 index.php를 읽어야하는경우 로컬 정책 모듈을 생성해야함.

해결방법.

  1. SELinux ‘httpd_read_user_content’ 활성화
    => setsebool -P httpd_read_user_content 1
  2. php-fpm이 index.php를 읽도록 로컬 정책 모듈 생성
    =>ausearch -c ‘php-fpm’ –raw | audit2allow -M my-phpfpm
    semodule -X 300 -i my-phpfpm.pp

터미널로 다시 접속해서 위 해결방법 시도

그리고 다시 Access Denied 떴던 웹서버 접속.

됐다 ; 후.. 망할 Cent 8… SELinux를 조심하자

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

답글 남기기

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

홈서버 IT 커뮤니티 SVRFORUM
Link