본문 바로가기
카테고리 없음

오라클 설치 스크립트파일

by Lsung 2026. 9. 18.

1. Oracle Client 설치

 
dnf install -y https://download.oracle.com/otn_software/linux/instantclient/1925000/oracle-instantclient19.25-basic-19.25.0.0.0-1.x86_64.rpm

dnf install -y https://download.oracle.com/otn_software/linux/instantclient/1925000/oracle-instantclient19.25-devel-19.25.0.0.0-1.x86_64.rpm

dnf install -y https://download.oracle.com/otn_software/linux/instantclient/1925000/oracle-instantclient19.25-sqlplus-19.25.0.0.0-1.x86_64.rpm
 

2. Oracle 설정파일 생성

 
mkdir -p /usr/lib/oracle/network/admin/
 
 
echo 'NAMES.DIRECTORY_PATH= (TNSNAMES)' > /usr/lib/oracle/network/admin/sqlnet.ora
 
 
echo 'oracle = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = 192.168.10.11) (port = 1521)) (CONNECT_DATA = (SID = DB19)))' > /usr/lib/oracle/network/admin/tnsnames.ora
 

확인:

 
cat /usr/lib/oracle/network/admin/sqlnet.ora
 
 
cat /usr/lib/oracle/network/admin/tnsnames.ora
 

3. Oracle 접속 환경변수 설정

 
echo 'export TNS_ADMIN=/usr/lib/oracle/network/admin' >> /etc/profile
 
 
echo 'export LD_LIBRARY_PATH=/usr/lib/oracle/19.25/client64/lib' >> /etc/profile
 
 
echo 'export NLS_LANG=AMERICAN_AMERICA.AL32UTF8' >> /etc/profile
 

적용:

 
source /etc/profile
 

확인:

 
echo $TNS_ADMIN
echo $LD_LIBRARY_PATH
echo $NLS_LANG
 

정상 예:

/usr/lib/oracle/network/admin
/usr/lib/oracle/19.25/client64/lib
AMERICAN_AMERICA.AL32UTF8
 

4. Oracle 접속 테스트

 
sqlplus sb4/sb4@oracle
 

접속되면 성공.

종료:

 
exit
 

참고로 tnsping은 현재 설치 구성에서는 없었으니까 생략해도 돼.


Apache 설치

5. Apache 관련 패키지 설치

 
dnf install -y wget gcc gcc-c++ cmake apr apr-util zlib-devel expat-devel perl
 

6. Apache 다운로드

 
cd /usr/local
 
 
wget https://archive.apache.org/dist/httpd/httpd-2.2.34.tar.gz
 

7. 압축 해제

 
tar xvfz httpd-2.2.34.tar.gz
 
 
cd httpd-2.2.34
 

8. Apache 컴파일 및 설치

 
./configure --prefix=/app/apache --enable-rewrite --enable-so
 
 
make -j$(nproc)
 
 
make install
 

확인:

 
ls -l /app/apache/bin/apachectl
 

PHP 설치

9. PHP 관련 패키지 설치

 
cd /usr/local
 
 
dnf config-manager --set-enabled powertools
 
 
dnf install -y sqlite-devel libxml2* libpng-devel libjpeg-devel libnsl libnsl2-devel
 

10. PHP 다운로드

 
wget https://www.php.net/distributions/php-7.4.33.tar.gz
 

11. 압축 해제

 
tar xvfz php-7.4.33.tar.gz
 
 
cd /usr/local/php-7.4.33
 

12. PHP Configure

 
./configure --with-apxs2=/app/apache/bin/apxs \
--enable-sigchild \
--with-oci8=instantclient,/usr/lib/oracle/19.25/client64/lib
 

정상적으로 끝나면:

 
make -j$(nproc)
 
 
make install
 

13. php.ini 생성

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

확인:

 
ls -l /usr/local/lib/php.ini
 

Apache 설정

14. httpd.conf 수정

 
vi /app/apache/conf/httpd.conf
 

아래 내용 확인 또는 추가.

 
ServerName localhost
 
 
LoadModule php7_module modules/libphp7.so
 
 
AddType application/x-httpd-php .php .html .htm .inc
 

기존:

 
DirectoryIndex index.html
 

을:

 
DirectoryIndex index.html index.htm index.php
 

로 수정.

그리고:

 
<Directory "/app/apache/htdocs">
 

블록 안에 추가:

 
IndexOptions Charset=UTF-8
 

예:

 
<Directory "/app/apache/htdocs">

    Options Indexes FollowSymLinks
    IndexOptions Charset=UTF-8

    AllowOverride None
    Order allow,deny
    Allow from all

</Directory>
 

Apache에 Oracle 환경변수 적용

15. apachectl 수정

 
vi /app/apache/bin/apachectl
 

아래 추가:

 
# oracle setup
export TNS_ADMIN=/usr/lib/oracle/network/admin
export LD_LIBRARY_PATH=/usr/lib/oracle/19.25/client64/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
 

PHP 설정

16. php.ini 수정

 
vi /usr/local/lib/php.ini
 

아래 값으로 설정:

 
short_open_tag = On
default_charset = "UTF-8"
display_errors = On
include_path = ".:/usr/local/lib"
upload_tmp_dir = /tmp
error_reporting = E_ALL & ~E_NOTICE
 

PHP 모듈 확인

17. libphp7.so 확인

 
ls -l /app/apache/modules/libphp7.so
 

정상 예:

-rwxr-xr-x ... /app/apache/modules/libphp7.so
 

없다면 PHP를 다시 빌드:

 
cd /usr/local/php-7.4.33
 
 
make clean
 
 
./configure --with-apxs2=/app/apache/bin/apxs \
--enable-sigchild \
--with-oci8=instantclient,/usr/lib/oracle/19.25/client64/lib
 
 
make -j$(nproc)
 
 
make install
 

Oracle 연결 테스트 페이지

18. index.html 작성

이번에는 vi보다 아래 방식이 더 확실해.

 
cat > /app/apache/htdocs/index.html <<'EOF'
<?php
$server = "oracle";
$user = "sb4";
$passwd = "sb4";

$conn = @oci_connect($user, $passwd, $server) or die('Could not connect:');

echo "Oracle 19c \$conn : $conn<br>";

$st = oci_server_version($conn);

echo "$st<br><hr><br>";
?>
EOF
 

확인:

 
cat /app/apache/htdocs/index.html
 

Apache 문법 검사 및 실행

19. 설정 문법 확인

 
/app/apache/bin/apachectl configtest
 

정상:

Syntax OK
 

20. Apache 실행

 
/app/apache/bin/apachectl start
 

또는 이미 실행 중이면:

 
/app/apache/bin/apachectl restart
 

21. 프로세스 확인

 
ps -ef | grep httpd
 

22. 80 포트 확인

 
ss -lntp | grep :80
 

정상이면:

LISTEN ... *:80 ...
 

이 나옴.


방화벽 설정

23. 방화벽 상태 확인

 
firewall-cmd --state
 

running이면 HTTP 허용:

 
firewall-cmd --permanent --add-service=http
 
 
firewall-cmd --reload
 

확인:

 
firewall-cmd --list-services
 

예:

cockpit dhcpv6-client http ssh
 

최종 테스트

24. 서버 내부에서 확인

 
curl http://192.168.10.145
 

정상이라면 PHP 코드가 그대로 나오면 안 되고 Oracle 결과가 나와야 함.

25. 브라우저에서 확인

http://192.168.10.145
 

정상 화면:

Oracle 19c $conn : Resource id #2
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
 

이게 나오면 최종 성공.


전체 구조

192.168.10.145
Linux
 ├─ Oracle Instant Client
 ├─ SQL*Plus
 ├─ Apache 2.2.34
 ├─ PHP 7.4.33
 └─ OCI8
       │
       │ TCP 1521
       ▼
192.168.10.11
Oracle Database 19c
SID = DB19
계정 = sb4 / sb4