실무 관리자를 위한 Linux Enterprise Serve
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
2.4. Apache, Php, Java(Tomcat), Mysql 개발 환경 웹 Server
이 단원에서는 리눅스에서 다양한 웹 서비스 환경을 구축하는 법에 대해서 알아보도록 하겠다.
리눅스 환경에서 구현하는 웹 서비스 구성으로는 웹 서버 프로그램, 웹 어플리케이션 프로그램,
웹 어플리케이션 연동 DBMS, 그리고 웹 어플리케이션에서 사용하는 라이브러리등으로 구성되어
집니다.
리눅스 환경에서는 예로 부터 apache , PHP, Mysql 등의 구성으로 웹 서비스 환경을 구축해
왔습니다. 요즘에는 Java 개발자들이 많아 짐에 따라 Tomcat 기반의 Jsp 환경도 많이 이용되
고 있습니다. 이런 환경의 웹 서버 구축 법에 대해 살펴 보도록 하겠습니다.
먼저 사용해야 하는 DBMS를 설치 해야 합니다. 여기서는 Mysql를 이용하여 구축을 해 보도록
하겠습니다.
- 필요 프로그램
apache_1.3.33.tar.gz
mysql-4.0.24.tar.gz
php-4.3.10.tar.bz2
ZendOptimizer-2[1].5.2-Linux_glibc21-i386.tar.gz
clibpdf202r1.tar.tar
dist.99.linux.tar.Z
freetype-2.1.3.tar.gz
gd-2.0.21.tar.gz
imap-2004.tar.Z
j2sdk-1_4_1_01-fcs-linux-i586.rpm
jakarta-tomcat-4.1.30.tar.gz
jakarta-tomcat-connectors-4.1.30-src.tar.gz
jpegsrc.v6b.tar.gz
libpng-1.2.5.tar.gz
libungif-4.1.0.tar.gz
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
pdflib-4.0.3.tar.gz
tiff-v3.5.7.tar.gz
zlib-1.2.1.tar.gz
2.4.1 Mysql DB Server 설치 하기
먼저 http://www.mysql.com 사이트에서 mysql source 를 다운 받는다.
적절한 경로에 source 를 옮겨 놓고 압축을 푼다.
[root@arhfw apmj]# tar xzvf mysql-4.0.24.tar.gz
[root@arhfw apmj]# cd mysql-4.0.24
[root@arhfw mysql-4.0.24]# ./configure --prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data --with-mysqld-user=mysql --with-charset=euc_kr
[root@arhfw mysql-4.0.24]# make && make install
초기 Mysql DB를 생성한다.
[root@arhfw mysql-4.0.24]# /usr/local/mysql/bin/mysql_install_db
보안적인 문제로 Mysql DB를 관리한 계정을 만든다. 이전에는 root 계정이 mysql DB를 관리
하였지만, Mysql을 이용하여 root 권한이 공개되는 문제가 있어서 요즘에는 Mysql을 일반 계정
에서 관리 하도록 하고 있다.
[root@arhfw mysql-4.0.24]# userdel -r mysql ; groupdel mysql
[root@arhfw mysql-4.0.24]# groupadd mysql
[root@arhfw mysql-4.0.24]# adduser -g mysql -d /usr/local/mysql/data -s /bin/false mysql
[root@arhfw mysql-4.0.24]# chown -R mysql. /usr/local/mysql/data
Mysql 최적화 설정 파일을 /etc/my.cnf 이름으로 복사해 둔다.
[root@arhfw mysql-4.0.24]# cp support-files/my-medium.cnf /etc/my.cnf
Mysql initscript를 /etc/rc.d/init.d 밑에 복사해 둔다.
복사 전에 한글 지원이 가능하게 수정을 한다.
[root@arhfw mysql-4.0.24]# cd /usr/local/mysql
[root@arhfw mysql]# vi share/mysql/mysql.server
--------------------------------------------------------------------------------------
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file
위 행을 찾아서 뒤에 아래 옵션을 추가로 붙여준다.
--language=korean --safe-show-database &
--------------------------------------------------------------------------------------
[root@arhfw mysql]# cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld
시스템 리부팅 시 자동으로 동작하도록 설정한다.
[root@arhfw mysql]# ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S90mysqld
Mysql Daemon을 시작한다.
[root@arhfw mysql]# /etc/rc.d/init.d/mysqld start
Mysql 명령을 바로 사용 가능하도록 PATH 설정을 하도록 한다.
[root@arhfw mysql]# vi /etc/profile.d/mysql.sh
-------------------------------------------------------------------------------------
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:/usr/local/mysql/bin
export MYSQL_HOME PATH
-------------------------------------------------------------------------------------
Mysql path 환경을 적용한다.
[root@arhfw mysql]# source /etc/profile.d/mysql.sh
mysql root password 를 설정한다.
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
초기에는 mysql root 패스워드가 Null 상태로 셋팅된다.
보안을 위해 Mysql 설치 후에 반드시 mysql root 암호를 변경해 주어야 한다.
[root@arhfw mysql]# mysqladmin -u root password '패스워드'
이제 Mysql DB 에 접속해 하여 보자
[root@arhfw mysql]# mysql -u root -p mysql
------------------------------------------------------------------------------------
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.24-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
------------------------------------------------------------------------------------
Mysql 에 대한 보다 자세한 관리자 기술에 대해서는 이후 Mysql administration 과정에서
다루도록 하겠다.
2.4.2 PHP Support Library 설치 하기
PHP 웹 어플리케이션 설치에 앞서 각 시스템 Lib를 통해 PHP 의 기능을 다양하게
추가 할수 있다. PHP 에서 기본적으로 지원하는 함수 이외의 각 Lib에서도 PHP의
다양한 함수를 지원하고 있기 때문에 PHP 설치 전에 PHP 로 프로그래밍을 할때 필요한
추가 함수의 Lib를 설치를 해야 한다.
추가 Lib를 설치 하기 앞서 앞으로 추가 하는 Lib 중 운영체제에서 기본적 으로 제공하지
않는 Lib도 있지만 RPM 으로 기본 제공 되어지는 Lib도 있을것이다.
최적화된 PHP 환경을 만들기 위해서는 필요한 Lib를 모두 Source 설치하는것이 좋지만,
운영체제 구성 요소 중에 Source Lib와 의존성의 문제가 발생할 수도있으니 기존 설치된
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
RPM 형식의 Lib는 삭제하지 않고 추가로 Source Lib를 설치 하도록 하겠다.
rpm 형태로 설치된 Lib는 /usr/lib 밑에 설치가 될것이고, source 로 설치된 Lib 는
/usr/local/lib 밑에 설치가 될것이다.
- zlib 설치 하기
http://www.gzip.org/zlib/ 에서 zlib 을 다운 받습니다.
[root@arhfw apmj]# tar zxvf zlib-1.2.1.tar.gz
[root@arhfw apmj]# cd zlib-1.2.1
[root@arhfw zlib-1.2.1]# ./configure -s
[root@arhfw zlib-1.2.1]# make
[root@arhfw zlib-1.2.1]# ./configure && make test && make install
[root@arhfw zlib-1.2.1]# cp libz.so* /usr/local/lib
[root@arhfw zlib-1.2.1]# cd /usr/local/lib
[root@arhfw lib]# rm -rf libz.so
[root@arhfw lib]# rm -rf libz.so.1
[root@arhfw lib]# ln -s libz.so.1.2.1 libz.so
[root@arhfw lib]# ln -s libz.so.1.2.1 libz.so.1
시스템 LD_PATH 에 /usr/local/lib 를 추가 하도록 한다
[root@arhfw lib]# vi /etc/ld.so.conf
--------------------------------------------------------------------------------------
# 맨 위에 설정을 해준다. 순서대로 우선 순위가 정해진다.
/usr/local/lib
/usr/lib
.
.
--------------------------------------------------------------------------------------
추가한 경로를 적용한다.
[root@arhfw lib]# ldconfig
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
- tiff 설치 하기
[root@arhfw apmj]# tar xzvf tiff-v3.5.7.tar.gz
[root@arhfw apmj]# cd tiff-v3.5.7
[root@arhfw apmj]# ./configure && make && make install
- libpng 설치 하기
http://www.libpng.org/pub/png/libpng.html 에서 다운 받을 수 있다.
[root@arhfw apmj]# cd /usr/local/src/apmj
[root@arhfw apmj]# tar zxvf libpng-1.2.5.tar.gz
[root@arhfw apmj]# cd libpng-1.2.5
[root@arhfw apmj]# cp scripts/makefile.linux Makefile
[root@arhfw apmj]# make test && make install
- clibpdf 설치 하기
http://www.fastio.com 에서 다운 받을 수 있다.
[root@arhfw apmj]# mv clibpdf202r1.tar.tar clibpdf202r1.tar.gz
[root@arhfw apmj]# tar zxvf clibpdf202r1.tar.gz
[root@arhfw apmj]# cd ClibPDF/source
[root@arhfw source]# mv Makefile Makefile.orig
[root@arhfw source]# cp Makefile.Linux Makefile
[root@arhfw source]# make lib && make install
- pdflib 설치 하기
http://www.pdflib.com 에서 다운 받을 수 있다.
[root@arhfw apmj]# tar zxvf pdflib-4.0.3.tar.gz
[root@arhfw apmj]# cd pdflib-4.0.3
[root@arhfw apmj]# ./configure
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
7/27 페이지
서 진우(alang@clunix.com)
[root@arhfw apmj]# make && make install
/etc/ld.so.conf 에 pdflib 경로 추가
[root@arhfw apmj]# vi /etc/ld.so.conf
------------------------------------------------------------------------------------
.
/usr/share/tcl8.3/pdflib
------------------------------------------------------------------------------------
- swf 설치 하기
ftp://ftp.sgi.com/sgi/graphics/grafica/flash 에서 다운 받을 수 있다.
[root@arhfw apmj]# tar zxvf dist.99.linux.tar.Z
[root@arhfw apmj]# mkdir /usr/local/swf
[root@arhfw apmj]# cd dist
[root@arhfw dist]# mkdir /usr/local/swf/include
[root@arhfw dist]# mkdir /usr/local/swf/lib
[root@arhfw dist]# mkdir /usr/local/swf/fonts
[root@arhfw dist]# mkdir /usr/local/swf/psfonts
[root@arhfw dist]# mkdir /usr/local/swf/bin
[root@arhfw dist]# cp swf.h /usr/local/swf/include
[root@arhfw dist]# cp libswf.a /usr/local/swf/lib
[root@arhfw dist]# cp bin/* /usr/local/swf/bin
[root@arhfw dist]# cp fonts/* /usr/local/swf/fonts
[root@arhfw dist]# cp psfonts/* /usr/local/swf/psfonts
- freetype 설치 하기
http://freetype.sourceforge.net 다운 받을 수 있다.
[root@arhfw apmj]# tar xzvf freetype-2.1.3.tar.gz
[root@arhfw apmj]# cd freetype-2.1.3
[root@arhfw freetype-2.1.3]# ./configure && make && make install
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
- Jpeg 설치 하기
[root@arhfw apmj]# tar xzvf jpegsrc.v6b.tar.gz
[root@arhfw apmj]# cd jpeg-6b
[root@arhfw jpeg-6b]# ./configure --enable-shared --enable-static
[root@arhfw jpeg-6b]# make && make test && make install
- libungif 설치 하기
ftp://sunsite.unc.edu/pub/Linux/libs/graphics 에서 다운 받을 수 있다.
[root@arhfw apmj]# tar zxvf libungif-4.1.0.tar.gz
[root@arhfw apmj]# cd libungif-4.1.0
[root@arhfw libungif-4.1.0]# ./configure && make && make install
- gd 설치 하기
http://www.boutell.com/gd/http/ 에서 다운 받을 수 있다.
[root@arhfw apmj]# tar zxvf gd-2.0.21.tar.gz
[root@arhfw apmj]# cd gd-2.0.21
[root@arhfw gd-2.0.21]# ./configure && make && make install
- Imap 설치 하기
Sendmail 구축 편에서 Imap 설치 하기 문서를 참조하세요.
2.4.3 J2SDK,jakarta-tomcat 설치 하기
- J2SDK 설치 하기
Java 기반의 웹 어플리케이션인 tomcat 을 설치 하기 위해서는 JAVA SDK 가 필요하다.
[root@arhfw apmj]# rpm -Uvh j2sdk-1_4_1_01-fcs-linux-i586.rpm
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
[root@arhfw apmj]# cd /usr/java
[root@arhfw java]# ln -s j2sdk1.4.1_01/jre jre
[root@arhfw java]# ln -s j2sdk1.4.1_01 java
설치된 JAVA 환경 설정을 한다.
[root@arhfw java]# vi /etc/profile
------------------------------------------------------------------------------------
.
.
제일 하단에 아래 설정을 추가한다.
.
# j2sdk config
PATH="$PATH:/usr/java/java/bin"
export JAVA_HOME="/usr/java/java"
------------------------------------------------------------------------------------
설정을 적용시킨다.
[root@arhfw java]# source /etc/profile
정상적인 설치가 완료되었는지 확인한다.
[root@arhfw java]# java -version
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
- apache 1차 configure
[root@arhfw apmj]# tar xzvf apache_1.3.33.tar.gz
[root@arhfw apmj]# cd apache_1.3.33
[root@arhfw apache_1.3.33]# ./configure --prefix=/usr/local/apache
- jakarta-tomcat 설치 하기
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
[root@arhfw apmj]# tar xzvf jakarta-tomcat-4.1.30.tar.gz
[root@arhfw apmj]# mv jakarta-tomcat-4.1.30 /usr/local/tomcat
[root@arhfw apmj]# tar xzvf jakarta-tomcat-connectors-4.1.30-src.tar.gz
[root@arhfw apmj]# cd jakarta-tomcat-connectors-4.1.30-src/jk/native
[root@arhfw native]# ./buildconf.sh
[root@arhfw native]# ./configure --with-apache=/usr/local/src/apmj/apache_1.3.33
[root@arhfw native]# make && make install
jakarta-tomcat apache modules 가 정상적으로 설치가 되었는지 확인한다.
[root@arhfw native]# ls -al /usr/local/src/apmj/apache_1.3.33/src/modules
.
drwxr-xr-x 3 root root 4096 Apr 27 18:44 jk
.
2.4.4 PHP 설치 하기
2.4.2 에서 설치한 모든 Lib를 PHP 설치 시 연동해서 포함시킨다.
[root@arhfw apmj]# tar xjvf php-4.3.10.tar.bz2
[root@arhfw apmj]# cd php-4.3.10
[root@arhfw php-4.3.10]# ./configure --with-apache=/usr/local/src/apmj/apache_1.3.33 \
--with-mysql=/usr/local/mysql \
--with-imap=/usr/local/imap \
--with-jpeg-dir=/usr/local/lib \
--with-png-dir=/usr/local/lib \
--with-gif-dir=/usr/lib \
--with-zlib-dir=/usr/local/lib \
--with-gd=/usr/local/lib \
--with-freetype-dir=/usr/include/freetype2 \
--with-zlib=/usr/local/lib \
--with-tiff-dir=/usr/local/lib \
--with-pdflib \
--with-cpdflib \
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
--with-gettext \
--with-swf=/usr/local/swf \
--with-xml \
--with-mod_charset \
--with-language=korean \
--with-charset=euc_kr \
--enable-ftp \
--enable-sockets \
--disable-debug \
--enable-system \
--enable-track-vars \
--enable-calendar \
--enable-magic-quotes
[root@arhfw php-4.3.10]# make && make install
[root@arhfw php-4.3.10]# cp libs/libphp4.a
/usr/local/src/apmj/apache_1.3.33/src/modules/php4/
[root@arhfw php-4.3.10]# cp php.ini-dist /usr/local/lib/php.ini
2.4.5 Apache 설치 하기
지금까지의 과정으로 apache에 tomcat의 jk modules 와 php 의 libphp 모듈이 apache source
에 포함되어졌다. 이제 최종적으로 apache 와 tomcat 과 php 를 연동하여 설치 하면 된다.
[root@arhfw php-4.3.10]# cd /usr/local/src/apmj/apache_1.3.33
최종 apache 설치에 앞서 apache process 생성 갯수를 확장하도록 한다.
/usr/local/src/apmj/apache_1.3.33/src/include/httpd.h 를 열어 HARD_SERVER_LIMIT 의 256
부분을 적절히 증가 시켜 주면 된다. 이 설정은 실제 시스템의 보유 리소스의 정도와 커널에
서 open process, open file 등의 제한이 이 수치를 허용해야 한다.
그렇지 못한 경우는 시스템이 하드웨어 성능이 apache의 요구사항을 충족시킬 능력이 없기
때문에 과부하로 시스템을 다운 될 수도 있다.
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
--------------------------------------------------------------------------------------
#ifndef HARD_SERVER_LIMIT
#ifdef WIN32
#define HARD_SERVER_LIMIT 1024
#elif defined(NETWARE)
#define HARD_SERVER_LIMIT 2048
#else
#define HARD_SERVER_LIMIT 256
#endif
#endif
---------------------------------------------------------------------------------------
[root@arhfw apache_1.3.33]# ./configure --prefix=/usr/local/apache \
--activate-module=src/modules/php4/libphp4.a \
--activate-module=src/modules/jk/libjk.a \
--enable-module=so \
--enable-rule=SHARED_CORE \
--enable-shared=max
[root@arhfw apache_1.3.33]# make && make install
이제 apache 기반의 tomcat , php 웹 서비스 환경 구축이 완료되었다.
여기에 PHP 가속기인 Zend 를 추가 적으로 설치 해 보도록 하자.
우선 기본 설치된 apache Daemon을 실행하도록 한다.
[root@arhfw apache_1.3.33]# vi /usr/local/apache/conf/httpd.conf
-------------------------------------------------------------------------------
간단히 ServerName 의 주석을 풀고 현 시스테의 도메인이나 IP 를 적어준다.
800 줄 근처에 AddType allplcation/x-httpd-php 로 시작하는 부분을 찾아서..
AddType application/x-httpd-php .html .php3 .php4 .inc .phtml .php .ph <= 요렇게
AddType application/x-httpd-php-source .phps
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
바꿉니다. ( 혹은 위 2줄을 추가합니다. )
-------------------------------------------------------------------------------
[root@arhfw apache_1.3.33]# /usr/local/apache/bin/apachectl restart
2.4.6 Zend PHP 가속기 설치 하기
[root@arhfw apache_1.3.33]# cd /usr/local/src/apmj
[root@arhfw apmj]# tar xzvf ZendOptimizer-2\[1\].5.2-Linux_glibc21-i386.tar.gz
[root@arhfw apmj]# cd ZendOptimizer-2.5.2-Linux_glibc21-i386
[root@arhfw ZendOptimizer-2.5.2-Linux_glibc21-i386]# ./install
그럼 diglog 형태의 설정 대화 상자가 나타난다. 모두 [Next] 로 해서 넘어간다.
그럼 설정이 완료된다.
2.4.7 Apache httpd.conf 설정
[root@arhfw apmj]# vi /usr/local/apache/conf/httpd.conf
--------------------------------------------------------------------------------
ServerType standalone
ServerRoot "/usr/local/apache"
#LockFile /usr/local/apache/logs/httpd.lock
PidFile /usr/local/apache/logs/httpd.pid
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard
#ResourceConfig /usr/local/apache/conf/srm.conf
#AccessConfig /usr/local/apache/conf/access.conf
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 20
MaxSpareServers 40
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
StartServers 20
MaxClients 256
# apache 웹서버에서 수용 가능한 최대 요청 수이다. 앞 httpd.h 수정 시 정의했던 수 만큼
# 처리가 가능하다.
MaxRequestsPerChild 0
#Listen 3000
#Listen 12.34.56.78:80
#BindAddress *
# Dynamic Shared Object (DSO) Support
# LoadModule foo_module libexec/mod_foo.so
LoadModule env_module libexec/mod_env.so
LoadModule config_log_module libexec/mod_log_config.so
LoadModule mime_module libexec/mod_mime.so
LoadModule negotiation_module libexec/mod_negotiation.so
LoadModule status_module libexec/mod_status.so
LoadModule includes_module libexec/mod_include.so
LoadModule autoindex_module libexec/mod_autoindex.so
LoadModule dir_module libexec/mod_dir.so
LoadModule cgi_module libexec/mod_cgi.so
LoadModule asis_module libexec/mod_asis.so
LoadModule imap_module libexec/mod_imap.so
LoadModule action_module libexec/mod_actions.so
LoadModule userdir_module libexec/mod_userdir.so
LoadModule alias_module libexec/mod_alias.so
LoadModule access_module libexec/mod_access.so
LoadModule auth_module libexec/mod_auth.so
LoadModule setenvif_module libexec/mod_setenvif.so
LoadModule php4_module libexec/libphp4.so
LoadModule jk_module libexec/libjk.so
ClearModuleList
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_php4.c
AddModule mod_jk.c
#ExtendedStatus On
Port 80
User nobody
Group nobody
ServerAdmin root@clunix.org
ServerName 192.168.133.254
DocumentRoot "/usr/local/apache/htdocs"
<Directory />
Options FollowSymLinks
AllowOverride None
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
</Directory>
<Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/home">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Deny from env=go_out
Deny from export=go_out
</Directory>
<IfModule mod_userdir.c>
UserDir www
</IfModule>
#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS PROPFIND>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php index.phtml index.php3 index.jsp
</IfModule>
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
#CacheNegotiatedDocs
UseCanonicalName On
<IfModule mod_mime.c>
TypesConfig /usr/local/apache/conf/mime.types
</IfModule>
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile /usr/local/apache/conf/magic
</IfModule>
HostnameLookups Off
ErrorLog /usr/local/apache/logs/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /usr/local/apache/logs/access_log common
ServerSignature On
# > AddType text/html .ahtml
# > EBCDICConvert Off=InOut .ahtml
#
# EBCDICConvertByType On=InOut text/* message/* multipart/*
# EBCDICConvertByType On=In application/x-www-form-urlencoded
# EBCDICConvertByType On=InOut application/postscript model/vrml
# EBCDICConvertByType Off=InOut */*
<IfModule mod_alias.c>
Alias /icons/ "/usr/local/apache/icons/"
<Directory "/usr/local/apache/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /manual/ "/usr/local/apache/htdocs/manual/"
<Directory "/usr/local/apache/htdocs/manual">
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
<Directory "/usr/local/apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</IfModule>
<IfModule mod_autoindex.c>
IndexOptions FancyIndexing
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
20/27 페이지
서 진우(alang@clunix.com)
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
ReadmeName README
HeaderName HEADER
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
</IfModule>
<IfModule mod_mime.c>
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage he .he
AddCharset ISO-8859-8 .iso8859-8
AddLanguage it .it
AddLanguage ja .ja
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
AddCharset ISO-2022-JP .jis
AddLanguage kr .kr
AddCharset ISO-2022-KR .iso-kr
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .sv
AddLanguage cs .cz .cs
AddLanguage ru .ru
AddLanguage zh-TW .zh-tw
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866 .cp866
AddCharset ISO-8859-5 .iso-ru
AddCharset KOI8-R .koi8-r
AddCharset UCS-2 .ucs2
AddCharset UCS-4 .ucs4
AddCharset UTF-8 .utf8
<IfModule mod_negotiation.c>
LanguagePriority kr en da nl et fr de el it ja no pl pt pt-br ru ltz ca es sv tw
</IfModule>
AddType application/x-tar .tgz
AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz
#AddType application/x-compress .Z
#AddType application/x-gzip .gz .tgz
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
AddType application/x-httpd-php .html .php3 .php4 .inc .phtml .php .ph .jsp .xtm
AddType application/x-httpd-php-source .phps
AddHandler cgi-script .cgi
#AddType text/html .shtml
#AddHandler server-parsed .shtml
#AddHandler send-as-is asis
#AddHandler imap-file map
#AddHandler type-map var
</IfModule>
#MetaDir .web
#MetaSuffix .meta
# Customizable error response (Apache style)
# these come in three flavors
#
# 1) plain text
#ErrorDocument 500 "The server made a boo boo.
# n.b. the single leading (") marks it as text, it does not get output
#
# 2) local redirects
#ErrorDocument 404 /missing.html
# to redirect to local URL /missing.html
#ErrorDocument 404 /cgi-bin/missing_handler.pl
# N.B.: You can redirect to a script or a document using server-side-includes.
#
# 3) external redirects
#ErrorDocument 402 http://www.example.com/subscription_info.html
# N.B.: Many of the environment variables associated with the original
# request will *not* be available to such a script.
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
# Customize behaviour based on the browser
#
<IfModule mod_setenvif.c>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Webzip" go_out
BrowserMatch "WebZip" go_out
BrowserMatch "Teleport" go_out
BrowserMatch "GetRight" go_out
BrowserMatch "Wget" go_out
</IfModule>
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .example.com
#</Location>
# Allow remote server configuration reports, with the URL of
# http://servername/server-info (requires that mod_info.c be loaded).
# Change the ".example.com" to match your domain to enable.
#
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .example.com
#</Location>
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
# MOD_JK
<IfModule mod_jk.c>
JkWorkersFile /usr/local/tomcat/conf/workers.properies
JkLogFile /usr/local/tomcat/logs/jk.log
JkLogLevel info
</IfModule>
NameVirtualHost 192.168.133.254
<VirtualHost 192.168.133.254>
ServerAdmin clunix@clunix.org
DocumentRoot /home/clunix/www
ServerName clunix.org
ServerAlias clunix.org www.clunix.org
JkMount /*.jsp ajp13
JkMount /webapps/* ajp13
JkMount /ROOT/* ajp13
</VirtualHost>
----------------------------------------------------------------------------------
위 설정은 실무에서 사용되어지는 httpd.conf 파일이다. 기본적으로 생성되는 httpd.conf
파일에서 해당 부분을 추가하여 사용하길 바란다.
apache 설정 파일에 대한 자세한 내용은 apache 관련 서적이나 http://www.apache.org
사이트를 참조하길 바란다.
2.4.8 Tomcat 설정 하기
이제 JSP 개발 환경에서 사용되어지는 Tomcat 설정을 해보도록 하자.
[root@arhfw root]# vi /usr/local/tomcat/conf/workers.properies
---------------------------------------------------------------------------------
workers.tomcat_home=/usr/local/tomcat
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
25/27 페이지
서 진우(alang@clunix.com)
workers.java_home=/usr/java/java
worker.list=ajp12, ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
---------------------------------------------------------------------------------
2.4.9 Tomcat 과 apache 연동 및 가상 호스트 설정
apache 운영 시 가상호스트로 운영할 때 각 도메인 별로 tomcat 역시 가상 호스트가 지원
가능하다.
[root@arhfw root]# vi /usr/local/tomcat/conf/server.xml
---------------------------------------------------------------------------------
.
.
</Host>
<Host name="localhost">
<Context path="" docBase="/home/virtual/www" reloadable="true"/>
<Alias>www.clunix.org</Alias>
</Host>
</Engine>
</Service>
</Server>
-----------------------------------------------------------------------------------
이제 apache ,php, tomcat, mysql 이 연동된 웹 시스템을 구동 시켜 보자.
- apache, php, tomcat 웹서버 시작하기
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
[root@arhfw root]# /usr/local/apache/bin/apachectl start
[root@arhfw root]# /usr/local/tomcat/bin/startup.sh
- apache, php, tomcat 웹서버 중지하기
만일 서비스 Daemon을 중지 할 필요가 있을때는 먼저 tomcat 를 중지하고 apache 를 중지
하도록 한다.
[root@arhfw root]# /usr/local/tomcat/bin/shutdown.sh
[root@arhfw root]# /usr/local/apache/bin/apachectl stop
2.4.10 PHP, JSP 테스트 하기
- PHP 테스트 하기
[root@arhfw root]# vi /home/clunix/www/phpinfo.php
-----------------------------------------------------------------------------------
<?
phpinfo ();
?>
-----------------------------------------------------------------------------------
브라우저 : http://localhost/phpinfo.php
- JSP 테스트 하기
[root@arhfw root]# vi /home/syszone/clunix/jsptest.jsp
------------------------------------------------------------------------------------
<%
out.println("Hello, JSP");
%>
-------------------------------------------------------------------------------------
* 실무 관리자를 위한 Linux Enterprise Server ( To construct Linux Service )
브라우저 : http://localhost/jsptest.jsp
- Tomcat 테스트 하기
브라우저 : http://192.168.133.254:8080
-> 고양이 화면이 나타나면 정상적으로 셋팅이 완료된것이다.