오라클 연동 AP(Apache+PHP) 설치

오라클 연동 AP(Apache+PHP) 설치

* AP 서버 설치 환경

호스트명 : ap

IP : 192.168.10.19

아파치 서버 경로 : /app/apache

아파치 : 2.2.34 (httpd-2.2.34.tar.gz)

PHP : 5.6.39 (php-5.6.39.tar.gz)

오라클 인스턴스 클라이언트 : 19.5.0.0.0

$ORACLE_BASE : /app/ora19c

$ORACLE_HOME : /app/ora19c/19c

* 설치 과정

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

step 2. Apache 설치

step 3. PHP 설치

step 4. Apache, PHP 설정

step 5. 서버 실행 후 연동 확인

[root@CentOS7-3 ~]# vi /etc/rc.d/rc.local [root@CentOS7-3 ~]# /app/apache/bin/apachectl stop [root@CentOS7-3 ~]#

이미 설치된 아파치를 삭제하고 시작한다.

[root@CentOS7-3 ~]# cd /app/apache [root@CentOS7-3 apache]# ls bin cgi-bin error icons lib man modules build conf htdocs include logs manual [root@CentOS7-3 apache]# cd [root@CentOS7-3 ~]# rm -rf /app/apache [root@CentOS7-3 ~]# cd /app/apache -bash: cd: /app/apache: 그런 파일이나 디렉터리가 없습니다

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

① 설치할 오라클 인스턴스 클라이언트는 오라클 한국어 사이트인 https://www.oracle.com/kr/index.ht

ml 에서 oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm 와 oracle-instantclient19.5-devel-

19.5.0.0.0-1.x86_64.rpm 두 개의 파일을 다운 받는다.

ftp서버에 있으므로 ftp로 다운 받을 것이다.

[root@CentOS7-3 ~]# ls anaconda-ks.cfg 공개 사진 initial-setup-ks.cfg 다운로드 서식 oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm 문서 음악 oracle-instantclient19.5-devel-19.5.0.0.0-1.x86_64.rpm 바탕화면 pcre-8.45.tar.gz 비디오

② /usr/lib/oracle/19.5을 ORACLE_BASE 디렉토리로 설치된다.

[root@CentOS7-3 ~]# rpm -Uvh oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm 준비 중... ################################# [100%] Updating / installing... 1:oracle-instantclient19.5-basic-19################################# [100%] [root@CentOS7-3 ~]# rpm -Uvh oracle-instantclient19.5-devel-19.5.0.0.0-1.x86_64.rpm 준비 중... ################################# [100%] Updating / installing... 1:oracle-instantclient19.5-devel-19################################# [100%]

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

[root@CentOS7-3 ~]# mkdir -p /usr/lib/oracle/network/admin/ [root@CentOS7-3 ~]# vi /usr/lib/oracle/network/admin/sqlnet.ora [root@CentOS7-3 ~]# cat /usr/lib/oracle/network/admin/sqlnet.ora NAMES.DIRECTORY_PATH= (TNSNAMES)

tnsnames.ora 파일을 수정한다.

[root@CentOS7-3 ~]# vi /usr/lib/oracle/network/admin/tnsnames.ora [root@CentOS7-3 ~]# cat /usr/lib/oracle/network/admin/tnsnames.ora oracle = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.11.135)(port = 1521)) (CONNECT_DATA = (SID = DB19)) ) ora = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.10.138)(port = 1521)) (CONNECT_DATA = (SID = DB19)) ) dal = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.10.11)(port = 1521)) (CONNECT_DATA = (SID = DB19)) )

step 2. Apache 설치

① httpd-2.X 소스파일을 /usr/local/에 다운받고 압축을 해제한다.

[root@CentOS7-3 ~]# cd /usr/local/ [root@CentOS7-3 local]# ls apache2 games include pcre-8.45.tar.gz share apr-1.6.5.tar.gz httpd-2.2.34 lib php src apr-util-1.6.1.tar.gz httpd-2.2.34.tar.gz lib64 php-7.4.26 var bin httpd-2.4.51 libexec php-7.4.26.tar.gz etc httpd-2.4.51.tar.gz pcre-8.45 sbin [root@CentOS7-3 local]# cd ./httpd-2.2.34

② configure → make → make install 순으로 컴파일 설치한다. 그 뒤에 여기부터 하기

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

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

[root@CentOS7-3 httpd-2.2.34]# /app/apache/bin/apachectl start httpd: Could not reliably determine the server's fully qualified domain name, using fe80::da2f:8c5b:1b46:2ceb for ServerName

이런 경고 메시지가 뜨면 아래와 같이 /app/apache/conf/httpd.conf에 ServerName localhost를 추가한다.

[root@CentOS7-3 httpd-2.2.34]# vi /app/apache/conf/httpd.conf ... ServerName localhost ...

아파치 서버를 다시 죽였다 살린다.

[root@CentOS7-3 httpd-2.2.34]# /app/apache/bin/apachectl stop [root@CentOS7-3 httpd-2.2.34]# /app/apache/bin/apachectl start [root@CentOS7-3 httpd-2.2.34]#

잘 실행되는 것을 확인할 수 있다.

step 3. PHP 설치

① PHP 설치전 컴파일을 위해 libxml 패키지 설치를 확인 후 설치한다.

[root@CentOS7-3 ~]# yum install -y libxml2*

이미 설치 되어있으므로 넘어간다.

[root@CentOS7-3 ~]# yum list libxml2* Loaded plugins: fastestmirror, langpacks Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast Loading mirror speeds from cached hostfile * base: ftp.jaist.ac.jp * extras: ftp-srv2.kddilabs.jp * updates: ftp.iij.ad.jp Installed Packages libxml2.x86_64 2.9.1-6.el7_9.6 @updates libxml2-devel.x86_64 2.9.1-6.el7_9.6 @updates libxml2-python.x86_64 2.9.1-6.el7_9.6 @updates libxml2-static.x86_64 2.9.1-6.el7_9.6 @updates Available Packages libxml2.i686 2.9.1-6.el7_9.6 updates libxml2-devel.i686 2.9.1-6.el7_9.6 updates libxml2-static.i686 2.9.1-6.el7_9.6 updates

② TNS_ADMIN, LD_LIBRARY_PATH와 같이 오라클 관련 경로 설정에 정의된 내용이 시스템에 존재하

는지 반드시 확인한다.

[root@CentOS7-3 local]# cd /usr/local/ [root@CentOS7-3 local]# tar xvfz php-5.6.39.tar.gz [root@CentOS7-3 local]# cd php-5.6.39/ [root@CentOS7-3 local]# ./configure --with-apxs2=/app/apache/bin/apxs --with-oci8=instantclient,/usr/lib/oracle/19.5/client64/lib --enable-sigchild [root@CentOS7-3 local]# make [root@CentOS7-3 local]# make install [root@CentOS7-3 php-5.6.39]# cp php.ini-development /usr/local/lib/php.ini cp: overwrite `/usr/local/lib/php.ini'? y

step 4. Apache, PHP 설정

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

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

② /usr/local/lib/php.ini 파일에 PHP 실행 환경을 설정한다. APO 서버 설정과 동일하다.

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

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

[root@CentOS7-3 ~]# vi /app/apache/bin/apachectl ... # oracle install export TNS_ADMIN=/usr/lib/oracle/network/admin export LD_LIBRARY_PATH=/usr/lib/oracle/19.5/client64/lib export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 (또는 AMERICAN_AMERICA.KO16MSWIN949)

step 5. 서버 실행 후 연동 확인

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

[root@CentOS7-3 ~]# vi /app/apache/htdocs/index.html "); $st=oci_server_version($conn); echo("$st"); phpinfo(); ?>

웹페이지에서 확인한다.

from http://lemonandgrapefruit.tistory.com/170 by ccl(A) rewrite - 2021-12-23 18:00:27