티스토리 뷰

얼마전 CentOS7에서 내부에 설치된 Apache, PHP서버에서 포트를 열었음에도 불구하고

외부에 Oracle과 연결을 해서 작업을 하려고하는데 OCI 연결 실패 에러가 났다.


원인 파악을 하기 위해서 해본 방법이다.


1. 터미널 창에서 systemctl status firewalld 을 쳐서 방화벽 상태확인


2. vi /etc/firewalld/zones/public.xml 


<zone>

  <short>Public</short>

  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>

  <service name="dhcpv6-client"/>

  <service name="ssh"/>

  <port protocol="tcp" port="80"/>

  <port protocol="tcp" port="3306"/>

</zone>


이런식으로 나오는데  



  <port protocol="tcp" port="3306"/> 밑에 


  <port protocol="tcp" port="1521"/> 이렇게 오라클 포트 1521을 추가하고 저장하였다.


3. systemctl reload firewalld 

방화벽 적용하기 위하여 방화벽 리로드


4. localhost/oci_conection.php  에서 Oracle 붙는지 확인


- 결과 : 실패


5.  아무리 찾아봐도 해결 방법을 못 찾음


6.  SELinux 설정 해지했냐고 물음


7. SELiunx 설정 


vi /etc/sysconfig/selinux


SELINUX=enforcing 을 SELINUX=disabled로 변경후 저장


8. reboot


9. 확인


확인해보니 OCI연동이 잘되었다.


SELinux가 무엇인지는 아직 잘 모르겠지만 아무래도 리눅스 보안정책인듯하다.


Oracle 연동뿐만 아니라 Apache 경로를 바꾼다던지 했을때도


제대로 설정된 경로임에도 불구하고 파일이 없다고 뜬다면


SELinux 를 끄고 확인해보길 권장드립니다.












'IT > OS' 카테고리의 다른 글

AWS EC2에 Nuxt 설치하기.  (0) 2019.10.11