on
오라클 연동 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