 |
 |
 |
 |
|
>> Read No. 23798 article |
|
|
오라클+아파치+PHP+MySQL+.....
|
 |
 |
 |
 |

등록 2001-03-14 11:57:00
조회 1
이름 musoyu

|
 |
 |
####################################################################################################
# Oracle8iSE 8.1.6 + Apache + MySQL + Zend + GD + Freetype + Tomcat +JDBC + imap 설치하기(뺑이치기)#
##------------------------------------------------------------------------------------------------##
## musoyu.net 2001.03.13
## # 5일동안 인터넷에 떠도는 자
료와 각종 게시판의 자료 그리고 책을 참고하여 작성했당! ## # 최대한 이
해가 쉽도록 나름대로 정리했슴.
## ####################################################################################################
########### 설치 환경 ################### #OS:알짜 6.2
final + WOW Linux 7.0(까치)# #셀러룬 600 RAM 256M HDD 20G #
##########################################
# 설치후 하드디스크 파티션 정보 #
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda4 1391452 93120 1227648 8% /
/dev/hda1 54416 11214 40393 22% /boot
/dev/hda5 2096160 191776 1904384 10% /dosc
/dev/hda6 2096160 1561440 534720 75% /dosd
/dev/hda7 2092348 1834860 257488 88% /dose
/dev/hda9 2016016 411528 1502076 22% /home
/dev/hda10 2016016 531472 1382132 28% /oracle
/dev/hda3 608756 45776 532056 8% /tmp
/dev/hda12 2016016 1813264 100340 95% /usr
/dev/hda8 2015984 310088 1603488 17% /usr/local
/dev/hda11 2016016 39472 1874132 3% /var
################################ 작업에 쓰인 도구들 #####################################
# ZendOptimizer-1.0.0-PHP_4.0.4-Linux_glibc21-i386.tar.gz
# apache_1.3.19.tar.gz
# freetype-1.3.1.tar.gz
# gd-1.8.4.tar.gz
# imap.tar.Z
# jakarta-tomcat-3.2.1.tar.gz
# jdk-1.2.2-RC3-linux-i386.tar
# jdk-debug-1.2.2-RC3-linux-i386.tar
# jdk118_v3-glibc-2.1.3.tar
# jsdk20-solaris2-sparc.tar.gz
# mm.mysql-2.0.4-bin.jar
# mod_jk.so
# mod_jserv.so
# mod_jserv_tomcat.so
# mysql-3.23.33.tar.gz
# php-4.0.4.tar.gz
# Oracle 8i SE 8.1.6 (책 부록으로 나온것 사용)
####################################################################################################
# 1.알짜 리눅스 6.2 에서 오라클 깔기
# 레드헷 7.0 에선 계속 실패하여 할수없이 6.2 에서 오라클을 깔고
# 나중에 7.0 으로 업그래이드 한당!
------------------------------------------------------------------------------
# JRE + ORACLE 설치하기 (오라클 8.1.6 버전 부터 jre 없이도 오라클이 설치된다.
------------------------------------------------------------------------------
#**** 오라클을 제외하고 모든 설치는 root 계정으로 한다.*****#
#1) 파티션 설치환경
/oracle 2GB ( 오라클 프로그램이 설치되는 디렉토리)
/home/oracle 2GB (데이타베이스가 저장될 디렉토리---오라클 계정의 홈)
swap 700M (램의 3배정도를 설정했당.)
#2)X윈도에서 KDE를 쓰기위해 (Gnome 환경에서도 되지만 KDE 가 잘 붙는당!
# 오라클 설치후 Gnome 원하면 KDE 를 지워준다.)
/etc/sysconfig/desktop 에 KDE(대문자) 를 적고 저장한다.
vi /etc/sysconfig/desktop
#3) 오라클 그룹/사용자 생성 (오라클 그룹: dba)
groupadd dba
useradd oracle -g dba
passwd oracle
vi /etc/group
-> dba:x:5XX:에 dba:x:5XX:oracle,root로 고친다.
# /oracle 디렉토리 소유권을 oracle.dba 로 준다.
chown -R oracle.dba /oracle
#4) oracle 계정의 .bash_profile 에 추가할 내용( root 로긴!)
vi .bash_profile
export USERNAME BASH_ENV PATH
export ORACLE_OWNER=oracle; export ORACLE_OWNER
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/products/8.1.6
export ORACLE_SID=ORCL
export ORACLE_TERM=vt100
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
PATH=$PATH:$ORACLE_HOME/bin:/usr/local/jre/bin:$ORACLE_HOME:/usr/local/java/bin:/usr/local
export LD_LIBRAY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib
CLASSPATH=/usr/local/jre/bin:$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib:
umask 022
6)root 계정 환경 설정해 주기
root>#vi .bash_profile
export ORACLE_HOME=/oracle/app/oracle/products/8.1.6
export ORACLE_SID=ORCL
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export TNS_ADMIN=$ORACLE_HOME/network/admin
7) oracle 계정으로 로그인후, startx를 실행
8) 오라클 설치 프로그램이 있는 디렉토리로 이동/설치
/install/linux/runInstaller
........ 중간 설치 상세 설명 생략
........ group -> dba
........ Global Data Base Name -> ORCL
........ Directory for DataBase Files -> /home/oracle
........ 설치 도중 root권한으로 실행해야 하는 것들이 있음을 기억.
........ orainstRoot.sh root.sh 설치중 root 로 로그인 해서 실행해줘야한다. su 사용
........ 최종적으로 설치완료가 되면 아래와 같은 내용의 작은 창 정보가 나온다.
# [데이터베이스가 생성되었습니다.]
# <<데이터베이스 정보>>
# 전역 DB명 : oracle
# DBMS 식별자(SID): ORCL
# SYS 계정 암호: change_on_install
# SYSTEM 계정 암호: manager
# 오라클을 실행해본당..!
#먼저 oracle계정으로 접속해야 한다는 것을 잊지마용!
svrmgrl
connect internal;
startup;
quit
lsnrctl start
SQL> alter user system identified by abc; [Enter]
SQL> grant connect, resource to system;
SQL> alter user sys identified by 123; [Enter]
SQL> exit
* 사용자 등록
[oracle@baram bin]$ sqlplus [Enter]
Enter user-name: system[Enter]
Enter password: manager[Enter]
SQL>connect internal
SQL>create user 사용자ID indentified by 사용자passwd [Enter]
>default tablespace users [Enter]
>temporary tablespace temp [Enter]
>quota unlimited on users; [Enter]
completed
SQL>grant connect to 사용자ID
SQL>select * from tabs;
#=>잘 돌아 간다면 <B><U>오라클</U></B>을 shutdown하고 나머지 설치에 들어간다.
#알짜 6.2 에서 와우 7.0 으로 업그레이드 할려구 합다.
#rpm 으로 설치 되어 있는 중요 페키지를 삭제 한후 7.0으로 업그레이드 함다.
# 7.0 업그레이드
# imap 설치 ftp://ftp.cac.washington.edu/imap/
#rpm -qa | grep imapl 설치된 imap 패키지를 검색한다.
imap-2000-3
imap-devel-2000-3
rpm -e imap-devel
rpm -e imap
imap.tar.Z
]# tar zxvf imap.tar.Z
]# mv imap /usr/local/imap
]# cd /usr/local/imap
imap# make slx imap을 컴파일 한다
컴파일이 완료되면 imapd 디렉토리에 imapd가 ipopd디렉토리에는 ipop2d, ipop3d가
생성된다.
ipop2d는 잘 쓰지 않으므로 복사하지 않아도 된다.
imap# cp imapd/imapd /usr/sbin 생성된 실행화일들을 복사한다.
imap# cp ipopd/ipop3d /usr/sbin
이들은 xinetd 슈퍼데몬에 의해서 실행되므로 클라이언트 쪽에서 접속하여
사용할 수 있도록 하려면 환경설정을 수정해 주어야 한다.
배포판 레드햇6.2이하에서는 inetd 슈퍼데몬에 의해 실행되므로 환경설정이
조금 다르다.
]# cd /etc/xinetd.d
]# vm imapd #imapd 실행을 위한 환경설정화일을 생성시킨다.
service imap
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/imapd
log_on_success += DURATION USERID
log_on_failure += USERID
}
]# vm ipop3d
service pop3
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/ipop3d
log_on_success += USERID
log_on_failure += USERID
}
]# vim /etc/services
......
pop3 110/tcp pop-3 # POP version 3
pop3 110/udp pop-3
......
imap2 143/tcp imap # Interim Mail Access Proto v2
imap2 143/udp imap
......
]# /etc/rc.d/init.d/xinetd restart 슈퍼데몬을 재가동한다.
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
telnet을 이용하여 로컬호스트 110포트(pop3)로 접속하여 테스트한다.
[root@www xinetd.d]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK POP3 localhost.localdomain v2000.70 server ready
user mhbaek
+OK User name accepted, password please
pass abc123
+OK Mailbox open, 0 messages
quit
+OK Sayonara
Connection closed by foreign host.
IMAP은 기본적으로 143 포트를 사용한다.
imap>cp /usr/local/imap/c-client/c- client.a /usr/lib/libc-client.a
imap> mkdir /usr/local/include
imap> cp /usr/local/imap/c-client/mail.h /usr/local/include
imap> cp /usr/local/imap/c-client/rfc822.h /usr/local/include
imap> cp /usr/local/imap/c-client/linkage.h /usr/local/include
# 위의 파일들을 카피하는 것은 아파치 컴파일시 아파치가
# IMAP을 인식하여 사용할 수 있도록 하기 위한 파일입니다.
# 위의 파일들을 카피하지 않은면 아파치 컴파일시 에러가 납니다.
# IMAP 설치 끝.
# jdk 설치 http://java.sun.com *jdk 가 설치되어야 톰켓에서 서블릿 가동 가능!
tmp>tar xvf jdk-1.2.2-RC3-linux-i386.tar
tmp>tar xvf jdk-debug-1.2.2-RC3-linux-i386.tar
tmp>mv ./jdk1.2.2/ /usr/local/jdk1.2.2/
tmp>ln -s /usr/local/jdk1.2.2 java
vi /etc/profile 하시고..
PATH="$PATH:/usr/local/java/bin"
export JAVA_HOME="/usr/local/java"
export CLASSPATH="."
(저장후 종료)
잘 되었는지 확인방법은 다시 로그인 하신후에 java -version 해본다.
#3. jsdk 설치 http://java.sun.com
tmp>tar xvzf jsdk20_solarise2-sparc.tar.gz
tmp>mv ./JSDK2.0/ /usr/local/JSDK2.0/
JSDK2.0>ln -s /usr/local/JSDK2.0 JSDK
cd (root의 home으로 이동)
root>#vi .bash_profile(아래부분에 추가)
export PATH=/usr/local/JSDK/bin:$PATH
vi /etc/profile 추가
PATH="$PATH:/usr/local/JSDK"
export CLASSPATH=".:/usr/local/JSDK/lib/jsdk.jar"
(저장후 종료)
# mysql 설치 http://www.mysql.com tmp>#tar xvzf mysql-3.23.33.tar.gz
tmp>mv ./mysql-3.23/ /usr/local/mysql/
tmp>#cd mysql
mysql>#./configure --prefix=/usr/local/mysql --with-char=euc_kr
mysql>#make; make install
mysql>#./bin/mysql_install_db # DB 생성
mysql>#./bin/safe-mysqld & # MySQL 시작
mysql>#./bin/mysqladmin -u root password 'new-password'
('new-password' 는 자신의 고유 password)
#root 패스워드 분실시 방법:
./killall mysqld (데몬을 모조리 죽임)
./bin/safe_mysqld --skip-grant &
mysql> UPDATE user SET Password=PASSWORD('newpasswd') WHERE
user='root';
mysql> FLUSH PRIVILEGES;
#시스템 부팅시 자동으로 시작하기
vi /etc/rc.d/rc.local --------적당한 곳에 다음을 추가
/bin/sh -c 'cd /usr/local/mysql;./bin/safe_mysql &'
# PATH 지정
vi /etc/profile 수정
PATH="$PATH:usr/X11R6/bin:/usr/local/mysql/bin"
# GD Library설치 http://boutell.com/gd tmp>#tar xvzf gd-1.8.4.tar.gz
tmp>#mv ./gd1.8/ /usr/local/gd
tmp>#cd /usr/local/gd
gd>#make all
gd>#cp libgd.a /usr/local/lib/
gd>#cp *.h /usr/local/include
# freetype 설치
tmp>#tar xvzf freetype_1.3.1.tar.gz
tmp>#mv ./freetpye_1.3.1/ /usr/local/freetype/
tmp>#cd /usr/local/freetype
freetype>#./configure
freetype>#make; make install
# PHP 설치
# (아파치를 먼저 configure시켜준다)
tmp>#tar xvzf apache_1.3.19.tar.gz
tmp>mv ./apache_1.3.19/ /usr/local/apache/
tmp>#cd apache
apache>#./configure --prefix=/usr/local/apache
tmp>#tar xvzf php-4.0.4.tar.gz
tmp>mv ./php-4.0.4/ /usr/local/php/
tmp>#cd php
php>#./configure
--with-oci8=/oracle/app/oracle/products/8.1.6
--with-oracle=/oracle/app/oracle/products/8.1.6
--with-mysql=/usr/local/mysql
--with-apache=/usr/local/apache
--with-freetype=/usr/local/freetype
--with-imap=/usr/local/imap
--enable-sigchild <== #오라클과 연동시 중요한 옵션!
--with-language=korean
--with-charset=euc_kr
--with-config-file=/usr/local/lib
--with-track-vars
--disable-debug
php>#make; make install
#8. apache설치
tmp>tar zxvf apache_1.3.19.tar.gz
tmp>mv ./apache_1.3.19/ /usr/local/apache/
tmp>#cd /usr/local/apache
apache>#./configure
--prefix=/usr/local/apache
--activate-module=src/modules/php4/libphp4.a
--enable-rule=SHARED_CORE
--enable-module=so # java Shared Object
--enable-shared=max # DSO Support (Dynamic Shared Object)
apache>#make; make install
# 부팅시 자동으로 아파치 실행하기 :
vi /etc/rc.d/rc.local
/usr/local/apache/bin/apachectl start # 추가
# ZendOptimizer설치 http:/www.php.org
tmp>#tar xvzf ZendOptimizer-1.0.0-PHP_4.0.4-Linux_glibc21-i386.tar.gz
tmp>#cd ZendOptimizer ~~~
Zend~>#mkdir /usr/local/Zend
Zend~>#mkdir /usr/local/Zend/lib
Zend~>#cp ZendOptimizer.so /usr/Zend/lib/
Zend~>#cp /usr/local/php
php>#cp php.ini-dist /usr/local/lib/php.ini
php>#vi /usr/local/lib/php.ini (아래부분에 3줄 추가)
[Zend Optimizer]
Zend_optimizer.optimization_level=7
Zend_extension="/usr/local/Zend/lib/ZendOptimizer.so"
# jakarta tomcat 설치
#http://jakarta.apache.org 에서 jakarta-tomcat-3.2.1.tar.gz 랑 mod_jserv.so 다운
tmp>#tar xvzf jakarta-tomcat-3.2.1.tar.gz
tmp>#mv ./jakarta-tomcat-3.2.1/ /usr/local/jakarta-tomcat
tmp>#mv mod_jserv.so /usr/local/apache/libexec
tmp>#vi /usr/local/apache/conf/httpd.conf
# mod_jserv.so 는 아파치와 톰켓이 서로 통신하도록 하는 소프트웨어이당.
# 서로 사용하는 포트는 톰켓쪽을 위해 server.xml, 아파치 쪽에 tomcat.conf 에
# 설정되어있다. 그리고 서로 일치해야한다.디폴트로 8080 이다.
#(아래부분 추가)
Include /usr/local/jakarta-tomcat/conf/tomcat.conf
# httpd.conf아래 부분에 "#"지우고 수정
1) ServerName localhost
2) AddType appliation/x-httpd-php .php .php3 .php4 .PHP .html .htm
3) Addtype text/htm .shtml
AddHandler Server-parse .shtml
tmp>#vi /usr/local/apache/bin/apachectl (맨 첫줄에 아래부분을 추가한다.)
export ORACLE_HOME=/oracle/app/oracle/products/8.1.6
export ORACLE_SID=ORCL
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
tmp>#vi /usr/local/jakarta-tomcat/bin/startup.sh(아래부분에 다음 2줄 추가)
TOMCAT_HOME='/usr/local/jakarta-tomcat'
JAVA_HOME='/usr/local/java'
tmp>#vi /etc/profile(아래의 설정부분을 보시고 빠진 부분이 있다면 추가하세요)
export JAVA_HOME="/usr/local/java"
export CLASSPATH="."
export="$PATH:/usr/local/JSDK"
export CLASSPATH=".:/usr/local/JSDK/lib/jsdk.jar"
export TOMCAT_HOME="/usr/local/jakarta-tomcat"
export CLASSPATH=$CLASSPATH:/usr/local/jakarta-tomcat/lib/servlet.jar
export CLASSPATH="$CLASSPATH:.:/usr/local/java/jdbc/mm.mysql-2.0.4-bin.jar"
#tomcat 실행하기
tmp>#cd /usr/local/jakarta-tomcat/bin
jakarta-tomcat>#./startup.sh
"/usr/local/apache/bin" 으로 가서 아파치를 가동시킨다.
# 웹브라우저에서 <http://localhost:8080/> 확인.
# 고양이가 나타나면 성공
##########################################################
# 오라클과 PHP 연동시 문제해결......... #
##########################################################
# oracletest.php ---오라클과 php 연동 테스트...
<html>
<body>
<?php
$conn = ocilogon("scott","tiger","XXXXXXXXXX"); # XXXXXXX 로컬 오라클 인스턴스이름 또는
print "Server Version:".OCIServerVersion($conn); # 접속 가능한 tnsnames.ora 의 엔트리이름
OCILogOFF($conn); #을 명시해준다.(중요!)
?> #아래 참조...
</body>
</html>
# 결과는 브라우저로 보았을때 정보가 나오면 정상!
# phpinfo.php
<?php
phpinfo();
?>
# cat /oracle/app/oracle/products/8.1.6/network/admin/listener.ora
-----------------------------------------------------------------------------------------------
# LISTENER.ORA Configuration File:/oracle/app/oracle/products/8.1.6/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 자기호스트이름)(PORT = 1521))
)
)
(DESCRIPTION =
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
(ADDRESS = (PROTOCOL = TCP)(HOST = 자기호스트이름)(PORT = 2481))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/app/oracle/products/8.1.6)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /oracle/app/oracle/products/8.1.6)
(SID_NAME = ORCL)
)
)
------------------------------------------------------------------------------------------------
# cat /oracle/app/oracle/products/8.1.6/network/admin/tnsnames.ora
-----------------------------------------------------------------------------------------------
# TNSNAMES.ORA Configuration File:/oracle/app/oracle/products/8.1.6/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
EXTPROC_CONNECTION_DATA.MUSOYU.NET =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
######### = ######로 표시된 부분이 엔트리 이름!!!
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXXXXXXXXXXXX)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
-------------------------------------------------------------------------------------------------
# vi /usr/local/apache/bin/apachectl
export ORACLE_HOME=/oracle/app/oracle/products/8.1.6
export ORACLE_SID=ORCL
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
# 6줄을 맨 위에 추가해준다.
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!! 위 두 파일에서 나오는 포트가 사용 가능한지 /etc/service 파일을 참고한다. #주석제거
혹 포트 추가. # php.ini 편집 vi /usr/local/lib/php.ini
magic_quotes_gpc = On
magic_quotes_runtime = Off
magic_quotes_sybase = On
include_path = .:/usr/local/lib
upload_tmp_dir = /tmp
# 시스템 부팅시 연결 작동 순서
#오라클 시작
1) oracle 계정으로 로긴=>데이터베이스 기동 # svrmgrl
2) connect internal;
3) startup;
4) quit
#오라클 종료
1) oracle 계정으로 로긴=>데이터베이스 기동 # svrmgrl
2) connect internal;
3) showdown;
4) quit
#원격 디비 시작
1) lsnrctl start <listener_name> # listener.ora 참조
# 오라클 => MySQL => 톰켓 => 아파치 순으로 시작한당!
#오라클 확인 ps -auwx | grep ora
휴~~~~~~~~힘들다...이틀동안 오라클을 깐다고 뺑이치고 하루는 PHP 와 연동시킨다고....흐....
그러다 보니 닷새동안 이러구있다...그래도 인터넷에 있는 자료 참고해서 설치는 했는데...
나중을 위해서 나름대로 정리했당. 공유한당.모르는게 죄다. 특히 오라클과 PHP 연동 부분
은 자료가 넘 없었당. 물론 인터넸 게시판에도 나와 같은 문제땜에 질문이 넘치던데...
아뭏튼 누군가에게 필요했으면 좋겠당......아침이다..뻐근해....yss75--리눅스
 | |
|
|
|
|
페이지로딩: [ 1.10 초 ]
작업시간: [ 0.08 초 ]
|
|
 |
 |
![[TOP]](/images/color///top.gif) 
|
 |
 |
 |
 |
|
|