목차
1. 오라클 인스턴스 클라이언트 설치
2. Apache 설치
3. PHP 설치
4. Apache, PHP 설정
5. 서버 실행 후 연동 확인
설치할 오라클 인스턴스 클라이언트는 오라클 한국어 사이트인 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를 통해 리눅스로 보냈다.
rpm 명령어를 통해 파일을 설치한다.
이 작업을 수행하면 /usr/lib/oracle/12.2를 오라클 베이스 디렉토리로 설치된다.
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))
)
아파치 설치파일인 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
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
아파치 서버를 실행하고 브라우저를 이용해서 접속 테스트를 진행한다.
서버가 시작되기는 하지만 시작될 때 '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 항목은 주석 처리되어 있을 것이다.
PHP 설치전 컴파일을 위해 libxml패키지를 설치한다.
[root@apo ~]# yum install -y libxml2*
php 설치파일인 httpd-2.2.34.tar.gz 를 /usr/local/에 다운받고 압축을 해제한다.
[root@apo local]# tar xvfz php-5.6.39.tar.gz
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
/app/apache/conf/httpd.conf 파일의 내용을 수정한다. APO 서버 설정과 동일하다.
추가 내용
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .html .htm .inc
/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
/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
/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();
?>
[root@apo ~]# /app/apache/bin/apachectl stop
[root@apo ~]# /app/apache/bin/apachectl start