############
# NGINX + PHP + centOS 7 사용 시에 ‘No input file specified.’ 해결방법
# *** 이것저것 해봤지만 결국 실패했음. 나중을 위해서 기록을 남겨둠.
############
20181130 못찾음.
접속이 안 되는 이유는 Selinux에서 제공하는 보안패키지 때문.
아래와 같이 입력한 후에 php 웹 페이지가 정상적으로 붙는지 확인한다.
setenforce 0 #
만약 0으로 놓고 정상이며, 1로 놓고 웹 브라우저로 접속했을 때에 'No input file specified.' 에러 메시지가 떨어진다면, 보안 패키지 문제가 맞음. 인터넷을 뒤져보면, 특정 부분만 열어주는 옵션이 있긴하던데,
원인을 잘 설명해놓은 싸이트.
https://www.lesstif.com/pages/viewpage.action?pageId=14090779
원인
SELinux (centos 포함) 는 httpd 가 mysql 등의 DBMS 에 연결 불가.
wordpress 나 기타 php 로 개발시 일반적인 3-Tier 구조로 가지 않고 Apache httpd 에서 바로 DBMS 로 가는 구조로 개발.
SELinux 의 rule 에 의해 DBMS 접근이 거부되나, 이때 에러 메시지는 Browser 상에 나타나지 않고 /var/log/audit/audit.log 에 남음. 즉, 로그가 저기 남는지 모를 경우에 원인을 찾기가 어려워짐..
SElinux 에러 메시지 분석을 위해 audit2why 수행.
# audit2why < /var/log/audit/audit.log |more
type=AVC msg=audit(1543560485.447:283007): avc: denied { name_connect } for pid=11775 comm="nginx" dest=1025 sco
ntext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket
Was caused by:
Unknown - would be allowed by active policy
Possible mismatch between this policy and the one under which the audit message was generated.
Possible mismatch between current in-memory boolean settings vs. permanent ones.
#
원인은 OS의 강화된 보안 정책 때문에 그런 것임. 위의 블로그에서 내놓은 해결책을 입력해봤음.
setsebool -P httpd_can_network_connect_db 1
setsebool -P httpd_can_network_connect 1
systemctl restart nginx.service
하지만 내 경우는 저걸로 해결되지않음. 결국 포기…
setenforce 0 으로 놓고 테스트하고, 테스트 끝난 후에는 setenforce 1 으로 돌려놔야겠음.
끝.
'인터넷/모바일' 카테고리의 다른 글
mysql 암호 잊어버렸을 때 (0) | 2020.02.08 |
---|---|
알리발 로지텍 mx518 후기 (0) | 2019.07.19 |
cmd 창이 실행될 때에 자동적으로 스크립트 실행하기. (0) | 2018.01.09 |
한글 형태소분석기 mecab-ko 설치하기 (0) | 2017.03.29 |
텍스트 브라우저 w3m 설치 (0) | 2017.02.23 |