2020. 5. 22.

[Linux] apom 설치 및 오라클 연동


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

ip 설정

oracle 155
apache 153


* AP 서버 설치 환경

호스트명 : ap
IP : 192.168.10.153
아파치 서버 경로 : /app/apache
아파치 : 2.2.34 (httpd-2.2.34.tar.gz)
PHP : 5.6.39 (php-5.6.39.tar.gz)
오라클 인스턴스 클라이언트 : 19.5

* 설치 과정

step 1. 오라클 인스턴스 클라이언트 설치
# 오라클 인스턴스 클라이언트에서 오라클에 연동해주는거다.
# tnsname.ora 파일있어야함.
# 만약에 이거 안되면 소스코드에 직접 네트워크 식별정보를 때려박아야함
step 2. Apache 설치
step 3. PHP 설치
# php파서 php 아파치내부에 설치
step 4. Apache, PHP 설정
step 5. 서버 실행 후 연동 확인

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

설치할 오라클 인스턴스 클라이언트는 오라클 한국어 사이트인 https://www.oracle.com/kr/index.html 에서 oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm 두 개의 파일을 다운 받는다.

# 19.5 파일이 미리 있으므로 그것을 옮겨둔다.

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

rpm -Uvh oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm
rpm -Uvh oracle-instantclient19.5-devel-19.5.0.0.0-1.x86_64.rpm

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

mkdir -p /usr/lib/oracle/network/admin/

vi /usr/lib/oracle/network/admin/sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES)

vi /usr/lib/oracle/network/admin/tnsnames.ora

oracle =
(DESCRIPTION
(ADDRESS = (PROTOCOL = tcp) (HOST = 192.168.10.155) (port = 1521))
(CONNECT_DATA = (SID = DB12))
)


step 2. Apache 설치

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

mv httpd-2.2.34.tar.gz /usr/local/httpd-2.2.34.tar.gz

cd /usr/local
tar xvfz httpd-2.2.34.tar.gz
cd ./httpd-2.2.34

② configure → make → make install 순으로 컴파일 설치한다.

./configure --prefix=/app/apache --enable-rewrite --enable-so
make
make install

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

/app/apache/bin/apachectl start

서버가 시작되기는 하지만 시작될 때 '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 항목은 주석 처리되어 있을 것이다.
cp /app/apache/conf/httpd.conf /app/apache/conf/httpd.conf_default
vi  /app/apache/conf/httpd.conf
ServerName localhost



/app/apache/bin/apachectl start


/app/apache/bin/apachectl stop

step 3. PHP 설치

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

yum install -y libxml2*


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

tar xvfz php-5.6.39.tar.gz
cd php-5.6.39/
./configure --with-apxs2=/app/apache/bin/apxs --with-oci8=instantclient,/usr/lib/oracle/19.5/client64/lib --enable-sigchild
make

make install
cp php.ini-development /usr/local/lib/php.ini

--with-oci8에 지정한 '/usr/lib/oracle/19.5/client64/lib' 디렉토리는 설치한 인스턴스 클라이언트의 버전에 따라 경로가 달라진다.

# 19.5 변경해줘야한다.

step 4. Apache, PHP 설정

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

vi /app/apache/conf/httpd.conf

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


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

vi /usr/local/lib/php.ini

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

# short_open_tag <? ?> 인식못한다.
# default charset 오라클 셋팅 맞춰준다.


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

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.KO16MSWIN949
(또는 AMERICAN_AMERICA.AL32UTF8)


# export tns_admin 아래 연동 못하게된다.
# ld_library 오라클언어 못씀
# 아파치한테도 언어 설정 알려줘야함
# 경로확인할것

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

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

vi /app/apache/htdocs/index.html


<?
$server = "oracle";
$user_name = "kst11";
$password = "1234";
$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();
?>


# server = oracle 이것은 tns 이름
# user_name = kst11 계정만든거
# password = 1234 아까 넣어준거
# conn 오라클에 접속하여라 - 콘솔에 들어감
# 함수앞에 @ 이런 에더사인을 넣으면 에러나도 에러메시지 않띄워준다.
# echo 포인터정보라서 안알려줌
# st = 서버 버전이 뭔지 보여준다.
# phpinfo 설정내용 띄워줌

아파치를 재실행한다.

/app/apache/bin/apachectl stop
/app/apache/bin/apachectl start

브라우저를 통해 접속한 다음 출력 결과를 확인한다





댓글 없음:

댓글 쓰기