[LINUX] DB access fails on PHP webpage, but CLI succecess on rhel (by selinux)
증상 PHP스크립트 내에 DB(mysql) 커넥션을 수행시 오류 발생 터미널 상에서 CLI를 이용한 실행 : OK 웹페이지(웹서버)를 통한 실행 : FAIL CLI실행시 문제가 없음 → PHP 코드 내의 “DB접속정보 (host/id/pass/dbname)”는 오류가 없음 원인 및 문제 여부 확인 SELinux 정책에 의한 문제 기본적으로 제한되어 있는것으로 보여짐 결과적으로 문제는 발생하였으나, 이것이 httpd, php 측에서 발생한 에러가 아니다보니 웹서버 및 브라우저 측면에서는 정확하거나 신속하게 확인이 되지 않음 때문에 “감사시스템로그(audit.log)” 에서 확인해야 함 1. 로그 file : /var/log/audit/audit.log 2. 로그확인 exec : audit2why 해결 1. SELinux 의 정책 설정 변경 exec : setsebool setsebool -P httpd_can_network_connect 1 setsebool -P httpd_can_network_connect_db 1 httpd_can_network_connect : HTTP 스크립트 및 모듈의 네트워크 또는 원격 포트에 대한 연결 허용 여부 httpd_can_network_connect_db : HTTP 스크립트 및 모듈의 DB서버에 대한 연결 허용 여부 httpd_can_network_connect 항목을 활성화 해주면 httpd_can_network_connect_db 항목이 “off” 상태로 [ more… ]