resin + apache 연동해서 설치하기

mysql + apache + jdk + resin + php + Zend 설치
php와 jsp 같이 사용하기

1. source 파일 다운로드

설치에 필요한 파일을 /usr/local/src 디렉토리에서 다운로드 하고 압축 해제 한다.
apache -> http://apache.org/
mysql -> http://mysql.com/
php -> http://php.net/
ZendOptimizer -> http://zend.org/
jkd -> http://java.sun.com/
resin -> http://caucho.com/

[root@localhost root]# cd /usr/local/src/
[root@localhost src]# tar xvzfp resin-3.0.23.tar.gz
[root@localhost src]# tar xvzfp httpd-2.2.3.tar.gz
[root@localhost src]# tar xvzfp mysql-5.0.26.tar.gz
[root@localhost src]# tar xvzfp php-5.1.6.tar.gz
[root@localhost src]# tar xvzfp ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz

2. mysql 설치

[root@localhost src]# cd mysql-5.0.26/
[root@localhost mysql-5.0.26]# ./configure –prefix=/usr/local/mysql –with-charset=euckr && make && make install
[root@localhost mysql-5.0.26]# cd /usr/local/mysql/bin/
[root@localhost bin]# ./mysql_install_db –user=mysql
[root@localhost bin]# /usr/local/mysql/bin/mysqld_safe &

3. apache 설치

[root@localhost bin]# cd /usr/local/src/
[root@localhost src]# cd httpd-2.2.3/
[root@localhost httpd-2.2.3]# ./configure –prefix=/usr/local/apache2 –enable-so –enable-mods-shared –enable-rewrite –enable-ssl && make && make install
[root@localhost httpd-2.2.3]# cd /usr/local/apache2/
[root@localhost apache2]# /usr/local/apache2/bin/apachectl start

4. jdk 설치

[root@localhost apache2]# cd /usr/local/src
[root@localhost src]# sh jdk-1_5_0_09-linux-i586.bin
[root@localhost src]# mv jdk1.5.0_09/ /usr/local/java
[root@localhost src]# vi /etc/profile

– /etc/export 파일에 아래와 같이 java, resin 환경 변수 추가
—————————————————————————————-
JAVA_HOME=/usr/local/java
RESIN_HOME=/usr/local/resin
CLASSPATH=”$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar”
export JAVA_HOME CLASSPATH RESIN_HOME
—————————————————————————————-

– 수정된 /etc/profile 적용
[root@localhost src]# source /etc/profile

5. resin 설치

[root@localhost src]# cd resin-3.0.23
[root@localhost resin-3.0.23]# ./configure –prefix=/usr/local/resin –with-apxs=/usr/local/apache2/bin/apxs && make && make install
[root@localhost resin-3.0.23]# cd /usr/local/src/

– apache와 연동해서 설치하기 위해서 –with-apxs 옵션을 추가해서 설치한다. resin 설치가 완료되면, /usr/local/apache2/conf/httpd.conf 파일 하단에 아래의내용이 추가된다.
—————————————————————————————-
LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.so

ResinConfigServer localhost 6802
CauchoConfigCacheDirectory /tmp
CauchoStatus yes
—————————————————————————————-

6. php 설치

[root@localhost src]# cd php-5.1.6/
[root@localhost php-5.1.6]# ./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-apxs2=/usr/local/apache2/bin/apxs –enable-sysvshm=yes –enable-sysvsem=yes –enable-debug=no –enable-track-vars=yes –enable-url-fopen-wrapper=yes –with-ttf –with-png-dir=/usr –with-zlib-dir –with-jpeg-dir=/usr –with-gdbm=/usr –enable-ftp –with-tiff-dir=/usr –enable-memory-limit –enable-mbstring –with-expat-dir=/usr –enable-sockets –enable-wddx –with-freetype-dir=/usr –enable-bcmath –enable-mbstr-enc-trans –enable-mbregex –enable-exif –with-gd –enable-gd-native-ttf –enable-gd-imgstrttf –enable-calendar –with-openssl=/usr && make && make install
[root@localhost php-5.1.6]# cp php.ini-dist /usr/local/php/lib/php.ini

– php 설치가 완료되면 /usr/local/apache2/conf/httpd.conf 파일에 아래와 같이 php 모듈을 load 하는 부분이 추가되게 된다.
——————————————————————————————-
LoadModule php5_module        modules/libphp5.so
——————————————————————————————-

– .html .htm 등의 확장자에서도 php 코드가 인식가능 하도록 httpd.conf 파일에 아래와 같이 AddType 부분을 추가하고, DirectoryIndex 부분에도 Index 파일 우선순위별로 확장자를 추가한다.
——————————————————————————————-
AddType application/x-httpd-php .php .php3 .ph .inc .html .htm .tpl
AddType application/x-httpd-php-source .phps

~

< IfModule dir_module>
DirectoryIndex index.html index.htm index.php
< /IfModule>
——————————————————————————————-

7. Zend 설치

[root@localhost php-5.1.6]# cd /usr/local/src/ZendOptimizer-3.0.1-linux-glibc21-i386/
[root@localhost ZendOptimizer-3.0.1-linux-glibc21-i386]# ./install.sh

– resin 데몬 실행 : /usr/local/resin/bin/httpd.sh start
– apache 데몬 실행 : /usr/local/apache2/bin/apachectl start

– 이상의 작업으로 mysql + apache + resin + php 의 연동 설치 작업이 끝나게 된다.

– 가상호스트 설정을 하기전 default 설정으로는 .html, .php, .htm 등의 확장자로 끝나는 파일들의 DocumentRoot 디렉토리는 /usr/local/apache2/htdocs 디렉로리, .jsp로 끝나는 확장자의 DocumentRoot 디렉토리는 /usr/local/resin/webapps/ROOT 이다.
즉, http://아이피주소/*.html, http://아이피주소/*.htm, http://아이피주소/*.php 등의 파일은 /usr/local/apache2/htdocs 디렉토리에서 찾게되며 http://아이피주소/*.jsp 파일은 /usr/local/resin/webapps/ROOT 디렉토리에서 찾게 된다.

8. 가상호스트 설정

– apache 가상호스트 설정

/usr/local/apache2/conf/httpd.conf 파일에서 아래와 같이 /home/*/public_html 디렉토리에 대한 권한 설정을 추가한다.
—————————————
<Directory “/home/*/public_html”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
< /Directory>
—————————————

가상호스트 설정 파일인 conf/extra/httpd-vhosts.conf 파일을 Include 하기 위해서 httpd.conf 파일에서 아래와 같이 주석을 제거한다.
—————————————
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
—————————————

/usr/local/apache2/conf/extra/httpd-vhosts.conf 파일에 아래와 같이 가상호스트 설정을 한 후에 apache 데몬을 리스타트 한다.
———————————————————————-
NameVirtualHost 10.30.101.200

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
< VirtualHost 10.30.101.200>
ServerAdmin jook@hostway.co.kr
DocumentRoot /home/jook/public_html
ServerName www.jook.pe.kr
ServerAlias jook.pe.kr
ErrorLog logs/jook.pe.kr-error_log
CustomLog logs/jook.pe.kr-access_log common
< /VirtualHost>
———————————————————————-

[root@localhost conf]# /usr/local/apache2/bin/apachectl restart

– resin 가상호스트 설정

resin의 설정파일은 /usr/local/resin/conf/resin.conf 파일이며, default host 설정은 아래와 같이 되어 있으며, default DocumentRoot 디렉토리를 변경하려면 <web-app id=”/” document-directory=”webapps/ROOT”/> 부분에서 변경할 수 있다.
———————————————————————————–
<host id=”” root-directory=”.”>
<!–
– configures an explicit root web-app matching the
– webapp’s ROOT
–>
<web-app id=”/” document-directory=”webapps/ROOT”/>

<resin:if test=”${java.isJava5()}”>
<!–
– Administration application /resin-admin

– password is the md5 hash of the password.
– localhost is true to limit access to the localhost
–>
<resin:set var=”resin_admin_password”  default=””/>
<resin:set var=”resin_admin_localhost” default=”true”/>

<web-app id=”/resin-admin” document-directory=”${resin.home}/php/admin”/>
</resin:if>
</host>
———————————————————————————–

가상호스트 추가는 아래와 같은 형식으로 추가하며, 추가위치는 default host 설정부분의 아래에 차례로 추가 하면 된다.
가상호스트 추가완료후 resin 데몬을 restart 한다.
————————————————————–
<host id=”www.jook.pe.kr” root-directory=”/home/jook”>
<host-alias>jook.pe.kr</host-alias>
<web-app id=”/” document-directory=”public_html”/>
</host>
————————————————————–

[root@localhost conf]# /usr/local/resin/bin/httpd.sh stop
[root@localhost conf]# /usr/local/resin/bin/httpd.sh start

9. mysql connector 설치

– jsp를 이용해서 mysql을 연결하기 위해서는 mysql connector를 설치해야한다.
connector는 http://mysql.com 에서 다운로드 받을수 있다.
http://mysql.com 에서 “Downloads” -> “Connectors” -> “Connector/J” 메뉴에서 다운로드 받아서 /usr/local/src 디렉토리에 업로드 한후 압축 해제한다.
mysql 연결에 필요한 connector 파일은 mysql-connector-java-5.0.7-bin.jar 이기 때문에 mysql-connector-java-5.0.7-bin.jar 파일을 /usr/local/java/lib 디렉토리에 옮겨놓고, /etc/profile에서 CLASSPATH에 추가한다.

[root@localhost conf]# cd /usr/local/src
[root@localhost src]# tar xvzfp mysql-connector-java-5.0.7.tar.gz
[root@localhost src]# cd mysql-connector-java-5.0.7
[root@localhost mysql-connector-java-5.0.7]# cp mysql-connector-java-5.0.7-bin.jar /usr/local/java/lib
[root@localhost mysql-connector-java-5.0.7]# vi /etc/profile

—————————————————————————————————————-
CLASSPATH=”$JAVA_HOME/lib/mysql-connector-java-5.0.7-bin.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar”
—————————————————————————————————————-

[root@localhost mysql-connector-java-5.0.7]# source /etc/profile

– 최종적으로 resin 데몬을 재시작 하면 모든 작업이 완료되게 된다.

[root@localhost mysql-connector-java-5.0.7]# cd /usr/local/resin/bin
[root@localhost bin]# /usr/local/resin/bin/httpd.sh stop
[root@localhost bin]# /usr/local/resin/bin/httpd.sh start

10. php, jsp mysql 연결 확인

– 아래와 같이 test.php, test.jsp, dbtest.jsp 파일을 만들어 DocumentRoot 디렉토리에 업로드 하고 웹상에서 php와 jsp가 정상적으로 동작하는지, 이상없이 DB 연결이 되는지를 테스트 한다.

test.php
———-
< ?
phpinfo();
?>
———-

test.jsp
——————–
2 + 2 = <%= 2 + 2 %>
——————–

dbtest.jsp
——————————————————————-
< %@ page import=”java.sql.*”
contentType=”text/html;charset=euc-kr”%>
< %
String DB_URL = “jdbc:mysql://localhost:3306/mysql”;
String DB_USER = “root”;
String DB_PASSWORD= “”;
Connection conn;
Statement stmt;
try {
Class.forName(“org.gjt.mm.mysql.Driver”);
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
stmt = conn.createStatement();
conn.close();
out.println(“MySQL connected”);
} catch(Exception e)
{out.println(e);}
%>
——————————————————————-