[웹서버] Fedora3 + apache2 + php5 + mysql4 + resin2 연동하기

apache, php, mysql, resin 설치

이 문서는 fedora core3를 기반으로 작성되었습니다.

레진3는 상업용 서버에서 라이센스문제로 레진2를 기준으로 설치했습니다.

유니코드사용으로 APM의 옵션에 UTF-8이 들어간 부분들이 있습니다.

한글사용자들은 euc-kr로 변경하고 설치하세요.

/usr/bin에 java, javac가 존재합니다. 기본 패스($PATH) 사용시 참고하세요.

——————————————————————————–

package version, url

apache 2.0.54

http://httpd.apache.org/download.cgi?Preferred=http%3A%2F%2Fmirror.apache.or.kr

php 5.0.4

http://kr.php.net/get/php-5.0.4.tar.gz/from/a/mirror

resin 2.1.14

http://www.caucho.com/download/index.xtp

mysql 4.1.13

http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.13a.tar.gz/from/pick

jdk 5.0 update 4

https://sdlcweb4b.sun.com/ECom/EComActionServlet/DownloadPage:~:com.sun.sunit.sdlc.content.DownloadPageInfo;jsessionid=BDE0E49C0D6658FFB9DAA19B82110D1A;jsessionid=BDE0E49C0D6658FFB9DAA19B82110D1A

libjpeg 6 beta

http://ftp.superuser.co.kr/pub/etc/jpegsrc.v6b.tar.gz

libpng 1.2.5

http://ftp.superuser.co.kr/pub/etc/libpng-1.2.5.tar.gz

freetype 2.1.5

http://ftp.superuser.co.kr/pub/etc/freetype-2.1.5.tar.gz

imap 2001 alpha

http://ftp.superuser.co.kr/pub/redhat/9/RPMS/imap-devel-2001a-18.i386.rpm

——————————————————————————–

apache install

1. preparation

server/mpm/prefork/prefork.c 파일수정

[EDITOR] #define DEFAULT_SERVER_LIMIT 256 부분,

[EDITOR] #define DEFAULT_SERVER_LIMIT 1280 으로 변경

2. install

[PROMPT] ./configure –prefix=/usr/local/apache –enable-so –enable-modules=so

[PROMPT] make

[PROMPT] make install

3. configuration

/usr/local/apache/conf/httpd.conf 파일수정

[EDITOR] #ServerName www.example.com:80 부분,

[EDITOR] ServerName [도메인 or IP주소]:80 으로 변경

[EDITOR] #NameVirtualHost *:80 부분,

[EDITOR] NameVirtualHost *:80 으로 변경

맨아랫줄에 추가

[EDITOR] <VirtualHost *:80>

[EDITOR] DocumentRoot [경로:/home/test/public_html]

[EDITOR] ServerName [도메인 or IP주소]

[EDITOR] </VirtualHost>

위에 작성한 경로[/home/test/public_html] 생성

[PROMPT] mkdir -p /home/test/public_html

아파치 시작

[PROMPT] /usr/local/apache/bin/apachectl start

——————————————————————————–

jdk install

1. install

[PROMPT] rpm -ivh jdk-1_5_0_04-linux-i586.rpm

2. configuration

path에 java 디렉토리 설정

[PROMPT] vi /etc/profile

맨아래줄에 추가

[EDITOR] JAVA_HOME=/usr/java/jdk1.5.0_04

[EDITOR] export JAVA_HOME

[EDITOR] PATH=$PATH:$JAVA_HOME/bin

[PROMPT] source /etc/profile

——————————————————————————–

resin install

1. install

resin은 패키지 디렉토리에 바로 설치되기 때문에 패키지를 설치할 디렉토리에 복사합니다.

[PROMPT] cp -rf [레진패키지] [/usr/local/resin]

[PROMPT] ./configure –with-apache=/usr/local/apache

configure중에 아래의 메세지가 나와야 정상적으로 설치됩니다.

checking for JAVA_HOME…

/usr/java/jdk1.5.0_04 java설치경로에 따라 틀릴 수 있습니다.

checking for JNI in /usr/java/jdk1.5.0_04/include/linux … found

[PROMPT] make

[PROMPT] make install

——————————————————————————–

mysql install

1. install

[PROMPT] ./configure –prefix=/usr/local/mysql –with-charset=utf8

[PROMPT] make

[PROMPT] make install

2. configuration

기본 데이타베이스 생성

[PROMPT] /usr/local/mysql/bin/mysql_install_db

데몬을 실행시킬 mysql 사용자 생성

[PROMPT] useradd mysql

mysql사용자에 mysql디렉토리 권한 부여

[PROMPT] chown -R mysql:mysql /usr/local/mysql

mysql실행

[PROMPT] /usr/local/mysql/bin/mysqld_safe &

mysql관리자 암호 설정

[PROMPT] /usr/local/mysql/bin/mysqladmin -u root password ‘[암호]’

——————————————————————————–

php modules install

1. libjpeg install

[PROMPT] wget http://ftp.superuser.co.kr/pub/etc/jpegsrc.v6b.tar.gz

[PROMPT] ./configure –enable-shared –enable-static

[PROMPT] make

[PROMPT] make install

2. libpng install

[PROMPT] wget http://ftp.superuser.co.kr/pub/etc/libpng-1.2.5.tar.gz

[PROMPT] cp scripts/makefile.linux makefile

[PROMPT] make install

3. freetype install

[PROMPT] wget http://ftp.superuser.co.kr/pub/etc/freetype-2.1.5.tar.gz

[PROMPT] ./configure

[PROMPT] make

[PROMPT] make install

4. imap install

[PROMPT] wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/imap-devel-2001a-18.i386.rpm

[PROMPT] rpm -ivh [패키지파일명]

——————————————————————————–

php install

1. preparation

main/php_stream.h 파일 수정

[EDITOR] #define PHP_STREAM_COPY_ALL 2000000 부분,

[EDITOR] #define PHP_STREAM_COPY_ALL -1 로 변경

2. install

[PROMPT] ./configure –enable-bcmath –enable-ftp –enable-filepro –enable-libxml –enable-memory-limit –enable-sockets –enable-spl –enable-sysvsem –enable-sysvshm –enable-track-vars –enable-versioning –enable-wddx –disable-cli –disable-debug –disable-dmalloc –disable-posix –disable-rpath –with-apxs2=/usr/local/apache/bin/apxs –with-bz2 –with-expat-dir=/usr –with-freetype-dir –with-gd –with-gettext –with-imap=shared –with-imap-ssl=/usr/lib –with-jpeg-dir –with-kerberos –with-libxml-dir=/usr/local –with-mod-charset –with-mysql=/usr/local/mysql –with-openssl –with-png-dir –with-ttf –with-zlib

[PROMPT] make

[PROMPT] make install

3. configuration

[PROMPT] cp [패키지디렉토리]/php.ini-dist /usr/local/lib/php.ini

/usr/local/lib/php.ini 파일 수정

[EDITOR] register_globals = Off 부분,

[EDITOR] register_globals = On 으로 변경

[EDITOR] post_max_size = 8M 부분 값 수정

[EDITOR] upload_max_filesize = 2M 부분 값 수정

[EDITOR] max_execution_time = 30 부분 값 수정

[EDITOR] memory_limit = 8M 부분 값 수정

——————————————————————————–

configure linkage

1. apache configure

/usr/local/apache/conf/httpd.conf 파일 수정

php로 인식할 확장자를 지정하고 기본 언어설정을 UTF-8(유니코드)로 설정합니다.

적당한 부분에 추가 (맨 아래에 해도 됩니다.)

[EDITOR] AddType application/x-httpd-php .php .phtml .php3 .html .htm

[EDITOR] AddType application/x-httpd-php-source .phps

[EDITOR] AddDefaultCharset UTF-8

CustomLog레벨에 이미지리퀘스트는 로깅하지 않게 하는 옵션입니다.

[EDITOR] CustomLog logs/access_log common 부분,

[EDITOR] SetEnvIfNoCase Request_URI (gif|png|jpg|css|js|bmp|jpeg|swf)$ IMAGE=1

[EDITOR] CustomLog /usr/local/apache/logs/access_log common env=!IMAGE 으로 변경

Resin과 연동하기 위해 Apache설치시 작성했던 VirtualHost를 아래와 같이 변경

[EDITOR] <VirtualHost *>

[EDITOR] DocumentRoot [/home/test/public_html]

[EDITOR] ServerName [211.181.40.221]

[EDITOR] CauchoConfigFile /usr/local/resin/conf/resin.conf

[EDITOR] <Location /container-status>

[EDITOR] SetHandler caucho-status

[EDITOR] Order deny,allow

[EDITOR] Deny from all

[EDITOR] Allow from all

[EDITOR] </Location>

[EDITOR] </VirtualHost>

2. resin configure

/usr/local/resin/conf/resin.conf 파일 수정

apache 설정파일과 resin 설정파일에 서비스 할 루트디렉토리와 도메인명을 동일하게 지정해야 합니다.

[EDITOR] <caucho.com>

[EDITOR] <log id=’/log’ href=’stderr:’ timestamp='[%Y-%m-%d %H:%M:%S.%s]’/>

[EDITOR] <java compiler=”internal” compiler-args=””/>

[EDITOR] <resource-ref>

[EDITOR] <res-ref-name>jdbc/test</res-ref-name>

[EDITOR] <res-type>javax.sql.DataSource</res-type>

[EDITOR] <init-param driver-name=”com.caucho.jdbc.mysql.Driver”/>

[EDITOR] <init-param url=”jdbc:mysql_caucho://localhost:3306/test”/>

[EDITOR] <init-param user=””/>

[EDITOR] <init-param password=””/>

[EDITOR] <init-param max-connections=”20″/>

[EDITOR] <init-param max-idle-time=”30″/>

[EDITOR] </resource-ref>

[EDITOR] <jsp precompile=’true’ static-encoding=’true’ recompile-on-error=’true’/>

[EDITOR] <http-server>

[EDITOR] <srun host=’127.0.0.1′ port=’6802’/>

[EDITOR] <class-update-interval>2s</class-update-interval>

[EDITOR] <servlet-classloader-hack>false</servlet-classloader-hack>

[EDITOR] <caucho-status>true</caucho-status>

[EDITOR] <thread-max>150</thread-max>

[EDITOR] <thread-keepalive id=’100’/>

[EDITOR] <request-timeout id=’65s’/>

[EDITOR] <accept-buffer-size id=’256’/>

[EDITOR] <thread-min id=’5’/>

[EDITOR] <ignore-client-disconnect>true</ignore-client-disconnect>

[EDITOR] <cache dir=’cache’ size=’1024′ entries=’8192’/>

[EDITOR] <cache-mapping url-pattern=’/’ expires=’2s’/>

[EDITOR] <servlet-mapping url-pattern=’*.xtp’ servlet-name=’xtp’/>

[EDITOR] <servlet-mapping url-pattern=’*.jsp’ servlet-name=’jsp’/>

[EDITOR] <servlet-mapping url-pattern=’/servlet/*’ servlet-name=’invoker’/>

[EDITOR] <welcome-file-list>index.html, index.xtp, index.jsp</welcome-file-list>

[EDITOR] <host id='[211.181.40.221]’>

[EDITOR] <doc-dir>[/home/test/public_html]</doc-dir>

[EDITOR] <access-log id=’logs/access.log’

[EDITOR] format=’%h %l %u %t “%r” %s %b “%{Referer}i” “%{User-Agent}i”‘

[EDITOR] rollover-period=’1W’/>

[EDITOR] <error-log id=’logs/error.log’/>

[EDITOR] <war-dir id=’webapps’/>

[EDITOR] <web-app id=’/’>

[EDITOR] <classpath id=’WEB-INF/classes’ source=’WEB-INF/classes’

[EDITOR] compile=’true’/>

[EDITOR] <session-config>

[EDITOR] <session-max>4096</session-max>

[EDITOR] <session-timeout>30</session-timeout>

[EDITOR] <enable-cookies>true</enable-cookies>

[EDITOR] <enable-url-rewriting>true</enable-url-rewriting>

[EDITOR] </session-config>

[EDITOR] <path-mapping url-regexp=’^/~([^/]*)’

[EDITOR] real-path=’/home/$1/public_html/’/>

[EDITOR] </web-app>

[EDITOR] </host>

[EDITOR] </http-server>

[EDITOR] </caucho.com>

3. test

테스트용 html 페이지 생성

[PROMPT] echo “hello world” > /home/test/public_html/index.html

테스트용 php 페이지 생성

[PROMPT] echo “<?php phpinfo()?>” > /home/test/public_html/index.php

class 디렉토리 생성

[PROMPT] mkdir -p [/home/test/public_html/WEB-INF/classes]

테스트용 jsp 페이지 생성

[PROMPT] echo “<%@ page language=\\”java\\” import=\\”java.util.*\\” %>” > /home/test/public_html/index.jsp

[PROMPT] echo “<%” >> /home/test/public_html/index.jsp

[PROMPT] echo “String path = request.getContextPath();” >> /home/test/public_html/index.jsp

[PROMPT] echo “String basePath = request.getScheme()+\\”://\\”+request.getServerName()+\\”:\\”+request.getServerPort()+path+\\”/\\”;” >> /home/test/public_html/index.jsp

[PROMPT] echo “%>” >> /home/test/public_html/index.jsp

[PROMPT] echo “this is my JSP page.” >> /home/test/public_html/index.jsp

apache 재시작

[PROMPT] /usr/local/apache/bin/apachectl restart

resin 시작

[PROMPT] /usr/local/resin/bin/httpd.sh start

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.