나는 진정으로 두 가지 일만 한다.
하나는 우리의 기능을 수행하도록
경영자들을 끌어들이고 잡아두는 것이다.
다른 한 가지 일은 자본의 분배다.
나는 이 사업에서 과중한 모든 업무를
하부 경영진에게 위임했다.
퇴직 시점까지 권한을 위임할 것이다.
버크셔에는 종업원들이 3만 3,000명이나 있지만
단지 12명만 본사에서 일한다.
- 워렌 버핏, 투자회사 버크셔 회장
권한위임은 전문적 경영원칙이 아니라
단순한 상식에 해당합니다.
부하직원을 믿지 못해서,
자리를 뺏길 거라는 두려움 때문에,
혹은 또 다른 이유 때문에
권한위양을 못하는 경영자와 관리자가 많습니다.
그러나 일상적 업무를 위임하고 남는 시간을
전략구상 등 보다 가치 있는 일에 투자해야 하는 경영자의
막중한 책임을 고려할 때 권한위임은 피해갈 수 없습니다.
부부가 오래 살수록
배려와 아끼는 마음은 더욱 절실해진다.
아무리 부부 싸움은 칼로 물 베기라고는 하지만,
그 \'칼로 물 베기\'도 안 하는 편이 좋고
자주 하면 \'칼로 살 베기\'가 된다.
결혼했다고 방심하며 살 수는 없다.
그래서 나는 결혼 30년이 되는 오늘에도 신혼 초기에
단칸방 벽에 써붙였던 이 표어를 마음속에 붙이고 산다.
\"결혼 했다 방심 말고 오는 연적 막아내자!\"
- 김종헌 이형숙의 《Peace of Mind,
빵굽는 아내와 CEO남편의 전원카페》중에서 -
* 칼로 살 베기. 너무 거친 표현이지만 정말 그러기 쉽습니다.
입에서 나오는 말이 칼이 돼 마음에 상처내기 쉽기 때문입니다.
부부 싸움은 가급적 하지 않는 것이 상책이지만,
어쩔 수 없이 했을 경우엔 누구든 먼저
미안하다고 손을 내미는 것이 좋고,
되도록 남자가 먼저 하는 것이
더 좋습니다.
제목: 레드햇 9.0에서 Apache2, MySQL4, PHP4, Tomcat5 연동하기[7]
글쓴이: 예크디엠
글쓴날: 2004년 01월 07일 오후 05:52
URL : http://kltp.kldp.org/?story=04/01/07/5551551
--------------------------------------------------------------------------------
7. Tomcat Web Server Connector, JK2를 이용한 Apache2 웹서버와 Tomcat5의 연동
The Apache Jakarta Project 사이트에서 JK2 connector를 다운로드 받습니다. JK2의 binary 배포본은 Solaris와 WIN32용 만이 배포되고 있으므로 소스 형태의 배포본을 다운로드 받아야 합니다. http://jakarta.apache.org/site/sourceindex.cgi 에서 JK 2.0.2 Source Release tar.gz를 다운로드 받습니다.
배포파일 jakarta-tomcat-connectors-jk2-src-current.tar.gz
JK2 connector 소스를 컴파일 하면 얻을 수 있는 것이 mod_jk2.so 모듈입니다. Apache 웹서버와 Tomcat을 연동할 mod_jk2.so 모듈을 얻는 것이 컴파일의 목적입니다.
적당한 위치에서 압축을 풀어줍니다. 소스들을 컴파일하고 필요한 파일들을 이동시키면 더 이상 사용하지 않기 때문에 /usr/local/src에서 압축을 풀어주겠습니다.
shell> mv jakarta-tomcat-connectors-jk2-src-current.tar.gz /usr/local/src
shell> cd /usr/local/src
shell> tar xvfz jakarta-tomcat-connectors-jk2-src-current.tar.gz
압축이 풀리면 해당 디렉토리로 이동합니다. JK2 모듈을 얻기 위해서는 jakarta-tomcat-connectors-jk2-2.0.2-src/jk/native2로 이동합니다.
shell> cd /usr/local/src/jakarta-tomcat-connectors-jk2-2.0.2-src/jk/native2
다음과 같이 configure를 실행하고 make로 컴파일을 합니다.
shell> ./configure --with-apxs2=/usr/sbin/apxs
shell> make
configure 옵션(autoconf 출력옵션) --with-apxs2[=FILE]
Apache 2.0 에서 공유할 DSO 모듈을 build하기 위해 사용합니다. FILE은 Apache apxs tool이 있는 경로를 나타냅니다.
make 시 에러가 발생할 수 있습니다. 이것은 autoconf 실행 중 설정되는 Apache 홈디렉토리가 RedHat에서는 /usr이므로, 컴파일 중에 필요로 하는 libtool 실행파일을 /usr/build/ 경로에서 찾는데 RedHat에서는 /var/www/build/ 경로에 존재하기 때문입니다. 따라서 문제가 발생할 경우에는 /var/www/build 디렉토리를 /usr 디렉토리 밑으로 복사하기 바랍니다.
문제없이 완료되었다면, 현재 디렉토리를 기준으로 ../build/jk2/apache2/의 경로에 mod_jk2.so 파일이 만들어졌을 것입니다. 이 파일을 아파치 모듈이 있는 디렉토리로 복사합니다.
/usr/local/src/jakarta-tomcat-connectors-jk2-2.0.2-src/jk/conf/workers2.properties 파일을 /etc/httpd/conf/ 위치로 복사합니다.
shell> cd /usr/local/src/jakarta-tomcat-connectors-jk2-2.0.2-src/jk/conf
shell> cp workers2.properties /etc/httpd/conf
이 파일은 Apache 웹서버에서 JK2 모듈을 사용할 때 필요한 여러가지 설정을 저장한 파일입니다. 이 파일 이외에 jk2.properties 파일이 중요한데, workers2.properties 파일이 Apache 쪽에서 JK2 모듈의 설정을 담당한다면, jk2.properties 파일은 Tomcat 쪽에서 JK2 모듈을 통한 웹서버와의 연결 설정을 담당합니다. Tomcat 5.0 버전에서는 JK2 connector를 처리할 수 있는 coyote connector가 기본설치 되어 있기 때문에 jk2.properties 파일을 Tomcat의 conf 디렉토리로 복사할 필요는 없습니다.
/etc/httpd/conf/httpd.conf 파일을 vi와 같은 편집기로 열어 LoadModule 부분을 찾아서 다음을 추가합니다.
(위 설정내용은 포스데이타㈜ BPM 사업추진반 장윤기 대리님이 작성한 <아파치와 톰캣 연동 및 로드 발란싱 구현>에서 발췌하여 수정한 것입니다.)
/usr/local/share/jakarta-tomcat-5.0.16/conf/jk2.properties를 수정합니다.
shell> cd /usr/local/share/jakarta-tomcat-5.0.16/conf
shell> vi jk2.properties
## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
## WHEN YOU EDIT THE FILE.
## COMMENTS WILL BE _LOST_
## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.
# Set the desired handler list
# handler.list=apr,request,channelJni
#
# Override the default port for the socketChannel
channelSocket.port=8009
# Default:
# channelUnix.file=${jkHome}/work/jk2.socket
# Just to check if the the config is working
# shm.file=${jkHome}/work/jk2.shm
shm.file=/var/log/httpd/jk2.shm
# In order to enable jni use any channelJni directive
# channelJni.disabled = 0
# And one of the following directives:
# apr.jniModeSo=/opt/apache2/modules/mod_jk2.so
# If set to inprocess the mod_jk2 will Register natives itself
# This will enable the starting of the Tomcat from mod_jk2
apr.jniModeSo=inprocess
(위 설정내용은 포스데이타㈜ BPM 사업추진반 장윤기 대리님이 작성한 <아파치와 톰캣 연동 및 로드 발란싱 구현>에서 발췌하여 수정한 것입니다.)
모든 설정이 끝났습니다. 실행시키기 전에 /usr 디렉토리에서 /etc/httpd/conf 디렉토리에 연결된 링크 파일을 만들어줍니다. 이것은 mod_jk2.so 모듈을 컴파일 할 때 Apache Home Directory를 /usr 로 인식했기 때문에 workers2.properties 파일을 /usr/conf에서 찾기 때문입니다. 다음과 같이 실행합니다.
shell> cd /usr
shell> ln -s /etc/httpd/conf ./conf
모든 과정이 끝났으면 Tomcat과 Apache 웹서버를 실행시킵니다. ps 명령어로 현재 실행중인 process 목록을 확인해서 Tomcat과 Apache가 가동중인지 확인하고, 가동중이라면 실행을 중지시킵니다. 참고로 Tomcat의 Process CMD는 java입니다.
jk2.properties의 설정을 변경하였을 경우 이를 적용시키기 위해서는 Tomcat을 재가동 시켜주고 Apache 또한 다시 실행시켜주어야 합니다. workers2.properties의 설정을 변경한 경우에는 Apache 웹서버만 재가동시킵니다.
참고사항
- Apache Tomcat 연동에서 가장 중요한 부분은 자신의 시스템 또는 제공하려는 서비스에 알맞은 설정 파일을 작성하는 것입니다. 이 문서에서는 기본적인 설치만을 다루고 있기 때문에 자세한 사항은 Apache Jakarta 홈페이지를 방문해서 Tomcat 5.0 Document를 참고하기 바랍니다.
- 참고문서
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/index.html Tomcat 5.0 Document
http://www.javamania.pe.kr/index2.html [자바이야기>자료실] 아파치와 톰캣 연동 및 로드 발란싱 구현 (장윤기 님)
--------------------------------------------------------------------------------
답장(12)
제목: 레드햇 9.0에서 Apache2, MySQL4, PHP4, Tomcat5 연동하기[6]
글쓴이: 예크디엠
글쓴날: 2004년 01월 07일 오후 05:51
URL : http://kltp.kldp.org/?story=04/01/07/5487558
--------------------------------------------------------------------------------
6. Tomcat 설치
* Java Servlet Container
JVM 상에서 WEB 서비스를 위한 Java Servlet API를 구현하여 서비스 해주는 Java Program으로, Servlet Container는 Client의 http 요청을 웹서버를 통해 전달받아서 Application Servlet에 전달하고, Servlet의 http 응답 메시지를 웹서버에게 전달해서 Client로 돌려주는 역할을 한다.
* Servlet Container의 종류
1) Sun Microsystems 제공 Servlet Container
JSDK(Java Servlet Development Kit)
JSWDK(JavaServer Web Development Kit)
J2EE(Java2 SDK, Enterprise Edition)
Java Web Server(iPlanet Web Server)
2) Apache 제공 Servlet Container
Apache JServ, Tomcat
3) 기타 Servlet Container
JRun/JRun Pro, Resin, WebLogic, Web Sphere, IAS
* Tomcat
Tomcat은 Apache Software Foundation의 Jakarta 프로젝트의 일환으로 개발중인 소프트웨어입니다.
Tomcat은 Java Servlet과 Java Server Page를 사용할 수 있도록 하는 Servlet Container이며 독립적으로 웹서버의 기능을 수행합니다. 그러나 일반 html 문서도 Servlet Container를 통해 번역되므로 수행속도가 느리고 웹서버로서의 기능에 제한이 있으므로 보통 다양한 모듈과 막강한 기능을 가지고 있는 Apache 웹서버와 연동하여 사용합니다.
배포본은 binary와 source 형식으로 제공됩니다. 여기서는 바이너리 배포본의 설치만 설명합니다. The Apache Jakarta Project 홈페이지의 Downloads 부분에 있는 CVS repositories는 현재 개발중인 소스들을 확인하고 다운로드 받을 수 있는 페이지입니다. (CVS는 Concurrent Version System의 약어로 오픈소스 프로젝트에서 개발중인 소스의 버전을 관리해주는 시스템입니다. CVS에 대한 자세한 사항은 이 문서의 성격과 다르므로 언급하지 않겠습니다. 자세한 사항은 CVS 매뉴얼을 참고하기 바랍니다.)
0. 바이너리 설치
http://jakarta.apache.org/site/binindex.cgi에서 Tomcat 5.0.16의 tarball 형식의 배포본을 다운로드 받습니다.
배포파일 jakarta-tomcat-5.0.16.tar.gz
적당한 위치(설치하고자 하는 경로)에서 압축을 풀어줍니다. 바이너리 배포본은 압축을 풀어줌으로 기본적인 설치가 완료된 것입니다.
shell> cp jakarta-tomcat-5.0.16.tar.gz /usr/local/share
shell> cd /usr/local/share
shell> tar xvfz jakarta-tomcat-5.0.16.tar.gz
shell> cd /usr/local/share/Jakarta-tomcat-5.0.16/bin
shell> ./startup.sh
또는
shell> ./catalina.sh start
Using CATALINA_BASE: /usr/local/share/jakarta-tomcat-5.0.16
Using CATALINA_HOME: /usr/local/share/jakarta-tomcat-5.0.16
Using CATALINA_TMPDIR: /usr/local/share/jakarta-tomcat-5.0.16/temp
Using JAVA_HOME: /usr/java/j2sdk1.4.2_03
위의 메시지가 나오면 Tomcat이 정상적으로 작동하는 것입니다. 클라이언트에서 웹브라우저를 통해 다음의 주소로 접속합니다.
http://localhost:8080 또는 http://설치한서버의주소:8080
정상적으로 Tomcat이 작동하고 있다면 브라우저에 Tomcat 관련 문서가 나타날 것입니다.
만일, 정상적으로 작동하지 않는다면 J2SE의 설치가 제대로 이루어지지 않았거나 PATH 설정이 올바르게 이루어지지 않아서입니다. /etc/profile을 에디터로 열어서 J2SE 설치 시 PATH 설정한 부분을 확인해 봅니다.
Tomcat은 bin 디렉토리의 catalina.sh 또는 startup.sh 파일을 실행시켜서 작동시킵니다.
shell> pwd
/usr/local/share/jakarta-tomcat-5.0.16/bin
shell> ./catalina.sh start
또는
shell> ./startup.sh
Tomcat의 Shut down은 catalina.sh 또는 shutdown.sh 파일을 이용합니다.
shell> ./catalina.sh stop
또는
shell> ./shutdown.sh
마지막으로 PATH를 설정해줍니다. PATH 설정은 /etc/profile을 편집하여 이루어집니다. /etc/profile을 에디터로 열어서 J2SE 설치 시 PATH 설정한 부분에 다음을 추가합니다.
제목: 레드햇 9.0에서 Apache2, MySQL4, PHP4, Tomcat5 연동하기[5]
글쓴이: 예크디엠
글쓴날: 2004년 01월 07일 오후 05:50
URL : http://kltp.kldp.org/?story=04/01/07/5440002
--------------------------------------------------------------------------------
5. J2SE 설치
http://java.sun.com/j2se/1.4.2/download.html 의 Download J2SE v 1.4.2_03에서 SDK를 다운로드 받습니다. 배포본 형태는 2가지로 하나는 RPM 파일을 만들어주는 binary 파일이고, 다른 하나는 배포파일이 있는 그 자리에서 압축을 풀어서 설치하는 바이너리 파일입니다. 레드햇 기반의 리눅스에서는 RPM 소스 형식의 배포본을 다운로드 받아서 설치하길 권장합니다.
0. RPM 소스 설치
배포파일 j2sdk-1_4_2_03-linux-i586-rpm.bin
적당한 위치로 배포파일을 옮겨서 파일을 실행시킵니다.
실행 전 배포파일의 퍼미션을 확인하여 실행가능한 퍼미션을 갖도록 설정을 합니다.
참고사항
- J2SE의 배포본은 JRE(Java Runtime Environment)와 SDK(Software Development Kit)로 나뉘어집니다. JRE는 자바로 개발된 소프트웨어를 실행시키는 데 필요한 패키지이고 SDK는 자바를 사용하여 소프트웨어를 개발하는 개발자들을 위한 패키지입니다. 따라서 개발을 목적으로 자바를 설치하려는 사람은 SDK를 다운로드 받아서 설치하기 바랍니다.
- /etc/profile은 로그인시 필요한 환경을 설정해주는 설정파일로 쉘스크립트로 이루어져있습니다. profile의 내용을 잘 이해하시는 분은 자바 실행파일이 위치한 JAVA_HOME/bin 디렉토리의 PATH가 잘 이루어지도록 임의로 변경할 수 있습니다. 자바는 PATH에 상관없이 배포파일을 실행시켜서 또는 배포파일을 실행시켜서 생성된 RPM을 설치함으로 install이 완료된 것입니다. PATH 설정은 설치된 자바를 임의의 위치에서 편리하게 사용 가능하도록 하기 위한 것입니다.
- 자바의 공식 사이트 http://java.sun.com 에서 더 많은 정보들을 얻을 수 있습니다.
--------------------------------------------------------------------------------
shell> mv ZendOptimizer-2[1].1.0b-Linux_glibc21-i386.tar.gz /usr/local/src
shell> tar xvfz ZendOptimizer-2[1].1.0b-Linux_glibc21-i386.tar.gz
ZendOptimizer-2.1.0b-Linux_glibc21-i386 디렉토리가 생성되어 압축이 풀립니다. 이 디렉토리로 이동합니다.
shell> cd ZendOptimizer-2.1.0b-Linux_glibc21-i386
다음의 명령을 실행시킵니다.
shell> ./install.sh
화면에 GUI 환경이 나타나면서 install이 진행됩니다. 각 과정은 자동으로 이루어지며 마지막으로 Apache 웹서버를 재구동시켜줍니다. 설치는 /usr/local/Zend 경로에서 이루어집니다. 기존의 /etc/php.ini 파일은 /etc/php.ini-zend_optimizer.bak 으로 이름이 변경되고 php.ini 파일이 /usr/local/Zend/etc 안에 생성되며 /etc 디렉토리 안에는 이 /usr/local/Zend/etc/php.ini 의 symbolic link 파일이 만들어져 실제 php.ini 파일과 연결됩니다. 모든 과정이 끝나면 Zend Optimizer가 성공적으로 설치된 것입니다. install을 진행하면서 화면에 나타난 글들을 주의깊게 읽어보시기 바랍니다.
--------------------------------------------------------------------------------
제목: 레드햇 9.0에서 Apache2, MySQL4, PHP4, Tomcat5 연동하기[3]
글쓴이: 예크디엠
글쓴날: 2004년 01월 07일 오후 05:48
URL : http://kltp.kldp.org/?story=04/01/07/5288530
--------------------------------------------------------------------------------
3. PHP 설치
http://www.php.net/downloads.php 에서 소스 배포본을 다운로드 받습니다. 사이트를 방문하면 알 수 있듯이 윈도우 외의 시스템에서는 소스 형식의 배포본 만을 제공합니다.
배포파일 php-4.3.4.tar.gz
PHP는 모든 버전이 Apache 1.3.X와 연동이 가능합니다.
Apache 2.0의 최신버전과 함께 설치할 버전으로 PHP 4.3.0 및 이후 버전을 사용해야 합니다. Apache 2.0의 SAPI-support는 PHP 4.2.0에서부터 시작되었습니다. PHP 4.2.3은 Apache 2.0.39에서 동작하므로 PHP 4.2.3과 다른 Apache 2.0 버전을 사용하지 말기 바랍니다. 권장되는 설치 버전은 Apache 2의 최신 버전과 함께 PHP 4.3.0 및 이후 버전을 사용하는 것입니다.
위의 옵션으로 실행했을 때 libpng.(a|so)를 찾을 수 없다는 오류가 발생할 수 있습니다. 이 때에는 --with-gd 옵션을 제거하고 실행하거나 http://ftp.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/ 에서 libpng-devel-1.2.2-16.i386.rpm을 다운로드 받아서 설치한 후 실행하기 바랍니다. GD는 PHP 자체적으로 그래픽을 지원하는 기능이므로 PHP로 그래픽을 구현하기 위해서 꼭 필요한 옵션입니다.
* configure options
--prefix=PRIFIX
설치 디렉토리 설정. 디폴트 설치 디렉토리는 /usr/local 입니다. 즉 이 옵션을 사용하지 않을 경우 /usr/local 디렉토리에 PHP가 설치됩니다.
--with-apxs2[=FILE]
Apache 2.0 에서 공유할 DSO 모듈을 build하기 위해 사용합니다. FILE은 Apache apxs tool이 있는 경로를 나타냅니다. 디폴트는 apxs입니다. Apache 1.3.X에서는 --with-apxs[=FILE] 옵션을 사용합니다.
--with-config-file-path=PATH
php.ini 설정파일이 위치하게 될 경로를 정해줍니다. 디폴트는 PRIFIX/lib에 위치하게 됩니다. (PRIFIX가 /usr/local이면 /usr/local/lib에 위치하게됩니다.)
--with-zlib[=DIR]
ZLIB support를 포함시킵니다. 시스템에 zlib 1.0.9 및 이후 버전이 설치되어있어야 합니다. 레드햇 9.0에서는 1.1.4-8 버전이 RPM으로 설치되어있습니다. 확인해보시기 바랍니다.
--with-mysql[=DIR]
MySQL support를 포함시킵니다. DIR은 MySQL의 base directory로, 정의해주지 않으면 번들용 MySQL library가 사용됩니다.
--with-mod-charset
Russian Apache의 mod_charset 모듈에 대한 통신 테이블을 제공합니다. Apache의 mod_charset 모듈은 문서원본의 character-set과 문서를 클라이언트로 보내기 전에 변환할 character-set을 지정할 수 있는 역할을 제공합니다. Apache 2.0에서는 mod_charset_lite 모듈을 통해 실험적으로 구현하고 있습니다.
(XML support는 PHP 4.X 버전에서 자동으로 포함합니다.)
이 외의 옵션에 관해서는 configure --help 명령을 통해 확인해보거나, http://kr2.php.net/manual/kr/print/install.configure.php 문서를 참고하시기 바랍니다.
php.ini-dist를 /etc에 php.ini 로 이름을 변경하여 복사합니다. 기존에 있던 php.ini 파일은 php.ini.rpmsave 파일로 이름이 변경되어 있습니다.
shell> cp php.ini-dist /etc/php.ini
마지막으로 Apache 웹서버와 PHP 모듈과의 연동을 위해서 /etc/httpd/conf/httpd.conf 파일을 수정해줍니다. PHP install(make install 과정)시 모듈을 load하는 부분이 httpd.conf 파일에 자동으로 추가됩니다. 다음 부분이 httpd.conf 파일에 기록되어 있는지 확인합니다.
LoadModule php4_module lib/apache/libphp4.so
이부분이 없을 경우 Dynamic Shared Object (DSO) Support 부분에 추가합니다.
/var/www/html 디렉토리 내에서 다음과 같은 코드를 작성하여 웹브라우저를 통해 확인해봅니다.
shell> vi phpinfo.php
phpinfo();
?>
또는
shell> cat > test.php
phpinfo(); ?>
^d
PHP를 재설치하거나, 업그레이드하거나 또는 패치할 경우 config.cache 파일을 삭제한 후 위와 동일한 과정으로 진행합니다.
참고사항
- 다음 문서를 참고하시기 바랍니다.
http://kr2.php.net/manual/kr/print/install.apache2.php
http://kr2.php.net/manual/kr/print/install.configure.php
--------------------------------------------------------------------------------
답장(7)
위의 과정으로 설치를 진행하면 Apache의 root 디렉토리는 /usr이 되고, 웹서비스는 /var/www 디렉토리 밑에서 이루어지며, 설정파일들은 /etc/httpd 디렉토리에, 실행파일들은 /usr/sbin 디렉토리에 설치됩니다. 레드햇 기반의 리눅스는 기본적으로 웹서버로 Apache를 사용하기 때문에 리눅스 설치 후 추가적인 업그레이드 없이 Apache로 웹서버를 운영했을 경우 기존의 디렉토리 구조를 그대로 유지하게 됩니다. 이것은 configure 진행시 --enable-layout=RedHat이라는 옵션을 사용했기 때문입니다. 디렉토리에 대한 정보는 /usr/local/src/httpd-2.0.48/config.layout을 통해 확인하기 바랍니다. 더 자세한 사항은 설치 과정 설명을 마치고 보충하겠습니다.
다음으로 /etc/httpd/conf 디렉토리의 설정파일을 변경합니다.
설치 전에 웹서버를 운영하면서 사용된 설정파일들은 설치하면서 변경되지 않습니다. 설치시 생성된 파일들은 highperformance-std.conf, httpd-std.conf, ssl-std.conf 입니다. 이 세 파일들을 각각 highperformance.conf, httpd.conf, ssl.conf 로 이름을 변경하여 기존의 파일에 덮어씌웁니다.
/usr/sbin/apachectl 실행파일을 이용하여 웹데몬을 실행시켜봅니다.
Apache 설치 전 웹데몬을 중지시켰다면 다음과 같이 실행이 될 것입니다.
shell> /usr/sbin/apachectl start
httpd: Could not determine the server\'s fully qualified domain name, using 127.0
.0.1 for ServerName
이 메시지는 /etc/httpd/conf/httpd.conf 설정파일을 수정하지 않았기 때문에 표시되는 것입니다. 그러나 웹데몬은 잘 동작하고 인터넷을 통해 접속이 가능합니다. 만일 설치 전 웹데몬을 중지시키지 않았다면 위의 명령은 실행되지 않고 오류메세지를 나타냅니다. 이때에는 일일이 kill [PID] 명령으로 웹데몬 프로세스들을 중지시키고 실행시켜야 합니다. start 명령외에 stop과 restart 명령을 사용하여 웹데몬 가동을 중지시키거나 재시작할 수 있습니다.
부팅시 자동으로 httpd 데몬이 실행되도록 합니다.
/usr/sbin/apachectl 파일을 /etc/init.d 디렉토리에 httpd로 이름을 변경하여 복사합니다. 기존에 httpd 파일이 존재할 경우 덮어씌웁니다. 그리고 /etc/rc.d/rc0.d, /etc/rc.d/rc3.d, /etc/rc.d/rc5.d 디렉토리에 /etc/rc.d/init.d/httpd의 symbolic link 파일이 있는지 확인하고 없으면 link 파일을 생성합니다.
마지막으로 /etc/httpd/conf/httpd.conf 파일의 설정을 변경합니다.
기본적으로 변경해야할 부분은
#servername www.example.com:80
으로 #을 제거하고 www.example.com을 웹서버의 domain name으로 수정해 주거나 localhost로 적어줍니다.
servername yekdm.com:80
또는
servername localhost:80
뒤의 80이라는 숫자는 웹서버가 이용할 port 번호를 가리킵니다. 웹서버는 기본적으로 80번 port를 사용하며 특별한 경우가 아니라면 변경하지 않기를 바랍니다.
한글을 지원하기 위해서 AddDefaultCharset ISO-8859-1 부분을 찾아서 AddDefaultCharset utf8 또는 AddDefaultCharset euc_kr 로 변경합니다.
httpd.conf 설정파일은 Apache 웹서버를 시스템에 맞게 구동시키는데 매우 중요한 정보들을 담고 있습니다. Apache HTTP Server Version 2.0 문서 http://httpd.apache.org/docs-2.0/ 를 참고하시기 바랍니다.
위의 과정으로 Apache 웹서버의 설치가 끝났습니다. 그러나 아파치 웹서버는 관리자가 모듈들을 선택하여 서버에 포함할 기능을 결정할 수 있는 모듈화된 프로그램으로 모듈의 개념 및 사용법, 동적공유객체(DSO) 등을 이해하여야 아파치의 확장된 기능을 사용할 수 있습니다. 즉, PHP와 같은 프로그래밍 언어를 사용하고자 할 경우 또는 자바의 Servlet Container인 Tomcat과 Apache 웹서버와의 연동은 모듈을 통하여 이루어집니다.
전반적인 내용은 Apache HTTP Server Version 2.0 문서 http://httpd.apache.org/docs-2.0/ 에 있습니다. 여기서는 기본적으로 필요한 사항에 대해서만 설명하겠습니다.
* configure 옵션 (autoconf 출력옵션)
--help
모든 옵션과 사용법을 화면에 출력해줍니다. 실제로 configure가 이루어지지 않습니다.
--prefix=/usr/local/share/apache
Apache 웹서버가 설치될 디렉토리를 설정합니다. 이 문서에서는 RedHat에 포함된 Apache의 기본 디렉토리 구조를 따라가고자 이 옵션을 사용하지 않고 --enable-layout=RedHat이라는 옵션을 사용했습니다.
--enable-layout=RedHat
이 옵션을 통해 여러가지 플랫폼에 해당하는 적절한 디렉토리 구조를 따라 Apache를 설치할 수 있습니다. 각 플랫폼의 path layout은 config.layout 파일에 기록되어 있습니다.
--enable-rule=SHARED_CORE
Apache 컴파일시 rule을 지정합니다. SHARED_CORE는 DSO(Dynamic Shared Objects, 동적공유객체)를 사용할 수 있는 형태로 Apache를 컴파일하도록 하는 일종의 규칙입니다. 이 옵션을 지정해주면 DSO로 컴파일된 아파치에서 제공하지 않는 외부 모듈들을 선택적으로 사용할 수 있게 됩니다.
기본형은 --enable-rule=[RULE-NAME]으로 [RULE-NAME]에 해당하는 컴파일 규칙을 enable시킵니다. --help 옵션으로 나타나는 도움말에서는 이 옵션을 표시하고 있지 않습니다.
--enable-so
Apache가 실행시 특별한 옵션없이 자동으로 동적공유객체(DSO-Dynamic Shared Objects)를 읽어들일 수 있도록 하기 위한 설정옵션입니다.
이외에 여러가지 옵션들이 제공됩니다. 추가적인 사항은 Apache HTTP Server Version 2.0 문서 http://httpd.apache.org/docs-2.0/ 을 찾아보거나 --help 옵션으로 확인하기 바랍니다.
* 모듈
Apache는 모듈화된 설계로 이루어진 프로그램입니다. 모듈은 특별한 기능을 수행하기 위한 작은 프로그램으로 이해할 수 있습니다. 즉, 모듈마다 각각의 역할이 다르기 때문에 핵심 구현부 또는 실행부에 추가적으로 포함시켜 원하는 기능을 선택적으로 사용할 수 있습니다. Apache의 핵심 기능을 구현하는 모듈은 core이고 core를 기반으로 모듈을 추가하여 확장된 기능을 사용할 수 있습니다. 모듈은 Apache 컴파일시 정적으로 포함시킬 수 있고, 또는 DSO mechanism에 의해 Apache 컴파일 이후 추가적으로 포함하여 사용할 수 있습니다. DSO(Dynamic Shared Objects)를 지원하기 위해서는 컴파일시 configure 옵션으로 --enable-rule=SHARED_CORE를 추가하여 DSO 지원 형식으로 Apache를 컴파일하여야 하며, mod_so 모듈을 컴파일시 포함시켜야 합니다. mod_so 모듈은 core를 제외하고 DSO가 될 수 없는 유일한 모듈로서 Apache 핵심에 정적으로 컴파일해야 하며, DSO로 컴파일된 모듈을 Apache에서 읽어들이기 위한 기능을 제공합니다. 따라서 configure 진행시 일반적으로 mod_so를 포함하도록 합니다. 나머지 모듈에 관하여는 Apache Document를 참고하기 바랍니다.
* 동적공유객체(DSO-Dynamic Shared Objects)
Apache가 동적으로 load할 수 있는 객체입니다. core와 mod_so를 제외한 다른 모든 아파치 모듈 소스를 DSO 형식의 모듈로 컴파일하여 Apache에서 load하여 사용할 수 있습니다. DSO로 사용할 아파치 모듈을 쉽게 만들기 위해서 apxs(Apache Extension Tool)라는 지원프로그램이 있습니다. 이 프로그램으로 아파치 배포본 소스 트리 없이, DSO 지원을 위한 플랫폼 특유의 컴파일러 옵션과 링커 옵션을 고려하지 않고 모듈 소스를 DSO 모듈로 쉽게 컴파일할 수 있습니다. PHP와 Tomcat 등 외부 프로그램에서 제공하는 DSO 모듈은 프로그램 configure시 apxs를 사용한 옵션을 통해 프로그램과 함께 컴파일되어 생성됩니다. 자세한 사항은 Apache Document 내의 동적공유객체(DSO) http://httpd.apache.org/docs-2.0/dso.html 문서를 참고하기 바랍니다.
참고사항
- 다음은 Apache HTTP Server Project 사이트에서 제공하는 문서입니다. 이 문서를 통해 Apache에 대해 더 유익한 정보들을 얻을 수 있습니다.
Apache HTTP Server Version 2.0 문서 http://httpd.apache.org/docs-2.0/
--------------------------------------------------------------------------------
답장(2)