[Linux] CentOS7 오라클 연동 APO(Apache+PHP+Oracle) 설치😄

Dong Jung·2023년 2월 7일
0

linux

목록 보기
2/2
post-thumbnail

목차
1. 오라클 인스턴스 클라이언트 설치
2. Apache 설치
3. PHP 설치
4. Apache, PHP 설정
5. 서버 실행 후 연동 확인

1. 오라클 인스턴스 클라이언트 설치

1) 오라클 인스턴스 클라이언트 다운

설치할 오라클 인스턴스 클라이언트는 오라클 한국어 사이트인 https://www.oracle.com/kr/index.html 에서 oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm 와 oracle-instantclient12.2-devel12.2.0.1.0-1.x86_64.rpm 두 개의 파일을 윈도우로 다운받았고 ftp를 통해 리눅스로 보냈다.

2) 오라클 인스턴스 클라이언트 설치

rpm 명령어를 통해 파일을 설치한다.

이 작업을 수행하면 /usr/lib/oracle/12.2를 오라클 베이스 디렉토리로 설치된다.

3) 접속 환경 설정

sqlnet.ora 파일과 tnsnames.ora 파일을 생성한다.

[root@apo ~]# mkdir -p /usr/lib/oracle/network/admin/
[root@apo ~]# vi /usr/lib/oracle/network/admin/sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES)

[root@apo ~]# vi /usr/lib/oracle/network/admin/tnsnames.ora

oracle =    
  (DESCRIPTION =
   (ADDRESS = (PROTOCOL = tcp) (HOST = 오라클서버 아이피) (port = 1521))  
   (CONNECT_DATA = (SID = DB12))    
  )

2. Apache 설치

1) 아파치 다운

아파치 설치파일인 httpd-2.2.34.tar.gz 를 /usr/local/에 다운받고 압축을 해제한다.

[root@apo local]# tar xvfz httpd-2.2.34.tar.gz
[root@apo local]# cd ./httpd-2.2.34

2) 아파치 설치

configure -> make -> make install 순으로 컴파일 설치한다.

[root@apo httpd-2.2.34]# ./configure --prefix=/app/apache --enable-rewrite --enable-so
[root@apo httpd-2.2.34]# make
[root@apo httpd-2.2.34]# make install

3) 아파치 접속테스트

아파치 서버를 실행하고 브라우저를 이용해서 접속 테스트를 진행한다.

서버가 시작되기는 하지만 시작될 때 'httpd: Could not reliably determine the server's fully qualified domain name, using fe80::2efd:a1ff:fe72:a9f0 for ServerName' 경고가 발생할 수 있다. 이런 경우 httpd.conf(/app/apache/conf/httpd.conf) 파일에 'ServerName localhost' 를 추가하면 경고가 없어진다. ServerName 항목은 주석 처리되어 있을 것이다.

3. PHP 설치

1) php 설치전 패키지 설치

PHP 설치전 컴파일을 위해 libxml패키지를 설치한다.
[root@apo ~]# yum install -y libxml2*

2) php 다운

php 설치파일인 httpd-2.2.34.tar.gz 를 /usr/local/에 다운받고 압축을 해제한다.
[root@apo local]# tar xvfz php-5.6.39.tar.gz

3) php 설치

TNS_ADMIN, LD_LIBRARY_PATH와 같이 오라클 관련 경로 설정에 정의된 내용이 시스템에 존재하 는지 반드시 확인하며 설치한다.

[root@apo local]# cd php-5.6.39/
[root@apo php-5.6.39]# ./configure --with-apxs2=/app/apache/bin/apxs --with-oci8=instantclient,/usr/lib/oracle/12.2/client64/lib --enable-sigchild
[root@apo php-5.6.39]# make
[root@apo php-5.6.39]# make install
[root@apo php-5.6.39]# cp php.ini-development /usr/local/lib/php.ini

4. Apache, PHP 설정

1) apache 설정파일 httpd.conf 파일 수정

/app/apache/conf/httpd.conf 파일의 내용을 수정한다. APO 서버 설정과 동일하다.

추가 내용 
LoadModule php5_module     modules/libphp5.so 
AddType application/x-httpd-php .php .html .htm .inc    

2) PHP 설정파일 php.ini 파일 수정

/usr/local/lib/php.ini 파일의 내용을 수정한다. APO 서버 설정과 동일하다.

short_open_tag = On 
default_charset = "EUC-KR"  (UTF-8 변경 가능) 
include_path=".:/usr/local/lib" 
upload_tmp_dir = /tmp 
date.timezone = Asia/Seoul 
error_reporting = E_ALL & ~E_NOTICE

3) 아파치 실행할때 tns 및 경로 설정

/app/apache/bin/apachectl를 열어서 다음의 내용을 추가한다.

[root@apo ~]# vi /app/apache/bin/apachectl

.............

[root@apo ~]# oracle install
export TNS_ADMIN=/usr/lib/oracle/network/admin
export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

5. 서버 실행 후 연동 확인

  • 연동확인할때 데이터베이스서버는 리스너를 구동시키고, 데이터베이스를 startup 시켜두어야한다.

1) index.html 파일수정

/app/apache/htdocs/index.html 파일을 다음과 같이 수정한다.


<?  
 $server = "oracle";  
 $user_name = "php";  
 $password = "php";  
 $conn=@oci_connect($user_name, $password, $server) or die('Could not connect:');  
 echo("Oracle 12c \$conn : $conn<br>");  
 $st=oci_server_version($conn);  
 echo("$st<br>");  
 phpinfo(); 
?>

2) 아파치를 재실행 한다.

[root@apo ~]# /app/apache/bin/apachectl stop
[root@apo ~]# /app/apache/bin/apachectl start

profile
보안새내기

0개의 댓글