* 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
<?
 $server = "oracle";
 $user_name = "st";
 $password = "st";
 $conn=@oci_connect($user_name,$password,$server) or die('not connect:');
 echo("Oracle 19c \$conn : $conn<br>");
 $st=oci_server_version($conn);
 echo("$st<br>");
 phpinfo();
?>

 

웹페이지에서 확인한다.

 

Document Root 변경

/home/httpd/html/index.html

이때 vi /app/apache/conf/httpd.conf 에서 Document Root가 /home/httpd/html으로 되어있는지 확인한다.

 

vi /home/httpd/html/index.html

<html>
 <head>
   <title> st04 </title>
   <meta charset="UTF-8">
 </head>
 <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
 <p>&nbsp;</p>
 <table border="1" align="center">
   <tr>
         <td width="100">
                 <p align="center">목록<br></p>
                                <p align="center"><a href="html">html</a><br></p>
                                <p align="center"><a href="python">python</a><br></p>
         </td>
    </tr>
 </table>
</html>
<br>
<?
 $server = "oracle";
 $user_name = "st";
 $password = "st";
 $conn=@oci_connect($user_name,$password,$server) or die('not connect:');
 echo("Oracle 19c \$conn : $conn<br>");
 $st=oci_server_version($conn);
 echo("$st<br>");
 phpinfo();
?>

+ Recent posts