1 Apache 컴파일방법과기본디렉토리구성 아파치를 OS셋팅할때 RPM으로설치하게되면 /etc/httpd/ 로디렉토리가설정이되기때문에관리하기가불편하다. 그래서 OS설치시 package를선택하지않고소스로최신버전을다운받아 /usr/local/apache2로위치로컴파일해준다. 모든작업은 root계정으로진행하며작업디렉토리는 mkdir /home/src 만들어서해당디렉토리의소스들을다운받아놓고작업을진행을한다. 아파치를 http://www.apache.org에서최신버전을다운받는다 Apache 2.2.X 버전설치 1.openssl 설치 [root@localhost src] wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz [root@localhost src] tar -zxvf openssl-0.9.8e.tar.gz [root@localhost src] cd openssl-0.9.8e [root@localhost openssl-0.9.8e]./config --prefix=/usr/local/openssl [root@localhost openssl-0.9.8e]make [root@localhost openssl-0.9.8e]make install 2.apache 2.2.23 설치아파치를 http://www.apache.org에서최신버전을다운받는다. 현재셋팅 httpd-2.2.23.tar.gz이다다운받은 httpd-2.2.23.tar.gz를압축을풀고설치한다. 아파치2 컴파일전에는항상 worker.c, prefork.c 파일을수정하여접근할수있는사용자의수를증가시켜줘야한다. 차후에문제가되어재컴파일을해야할수도있으니항상확인해야한다. [root@localhost src] wget http://apache.tt.co.kr/httpd/httpd-2.2.23.tar.gz [root@localhost src] tar -zxvf httpd-2.2.23.tar.gz [root@localhost src] vi /home/gihcuser/src/httpd-2.2.23/server/mpm/worker/worker.c ifndef DEFAULT_SERVER_LIMIT define DEFAULT_SERVER_LIMIT 16 (16 -> 20 으로수정한다 )
[root@localhost src] vi /home/gihcuser/src/httpd-2.2.23/server/mpm/prefork/prefork.c endif ifndef DEFAULT_SERVER_LIMIT define DEFAULT_SERVER_LIMIT 256 (256 -> 1280으로수정한다 ) endif 위와같이수정하고하고다시 httpd-2.2.23 디렉토리로이동하여컴파일을진행한 다. [root@localhost src] cd /home/gihcuser/src/httpd-2.2.23 [root@localhost src]./configure --prefix=/usr/local/apache2 --enablemodules=ssl --enable-modules=so --enable-modules=mos --enable-so --enable-modsshared=most --enable-ssl --with-ssl=/usr/local/openssl --enable-staticrotatelogs [root@localhost src] make [root@localhost src] make install apache 기본 Document root, script 디렉터리와 log 설정을바꾸기위해아래와같이 진행해서사용할디렉토리를만들어놓는다. 기본으로설정되는 /usr/local/apache2/htdocs 에서의많은자료나로그그외서비스설치등으로 /usr 이 full 나는경우를방지하기위해 apache Document root 는파티션이충분한 /home 으 로변경하고, apache 로그도로그가쌓이는 /var/log/apachelog 로지정해야한다. [root@localhost /src]mkdir /home/httpd [root@localhost /src]mkdir /home/httpd/html [root@localhost /src]mkdir /home/httpd/cgi-bin [root@localhost /src]ln s /home/httpd/html /home/ftp아이디/public_html [root@localhost /src]chown R ftp아이디 :ftp아이디 /home/ftp아이디/ [root@localhost /src]chmod 711 /home/ftp아이디 [root@localhost /src]mkdir /var/log/apachelog 디렉터리를만들어준것과같이 document root 와그외설정을변경하기위해 httpd.conf 를아래와같이수정한다. [root@localhost httpd-2.2.23] vi /usr/local/apache2/conf/httpd.conf
If your host doesn't have a registered DNS name, enter its IP address here. ServerName www.example.com:80 ( 주석처리를빼고업체도메인으로수정한다 ) symbolic links and aliases may be used to point to other locations. DocumentRoot "/usr/local/apache2/htdocs" ( 경로를 /home/httpd/html 로수정한다 ) for more information. Options Indexes FollowSymLinks (Indexes 삭제한다 ) 아파치로그부분이많이쌓이기때문에 rotatelogs 를걸어서 200M 씩로그를분산한다. CustomLog " /usr/local/apache2/bin/rotatelogs /var/log/apachelog/ 도메인 - access_log.%y%m%d 200M" common env=!image ( 수정전 ->logs/access_log, 파이 프기호주의 ) ErrorLog "/var/log/apachelog/ 도메인-error_log " ( 수정전 -> logs/error_log ) ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/" ( 수정전 -> "/usr/local/apache2/cgibin ) <Directory "/usr/local/apache2/cgi-bin"> ( 수정전 -> "/usr/local/apache2/cgibin ) 시스템이부팅할때 apache 가실행되게하고, daemon 을따로관리할수있도록 /etc/rc.d/rc3.d/s99apache 를 symbolic link 로연결해준다. [root@ /rc3.d]ln s /usr/local/apache2/bin/apachectl /etc/rc.d/rc3.d/s99apache
2. MySQL 설치 Mysql-5.1.X 설치방법 Mysql 5.1.37 으로인스톨한다. 테스트를거친최신버전으로설치하도록한다. www.mysql.com 에서받는다. 디렉토리지정과한글을지정하도록최소한의옵션을지정해준다. [root@localhost/src]wget http://dev.mysql.com/get/downloads/mysql-5.1/mysql- 5.1.37.tar.gz /from/ftp://mysql.byungsoo.net/pub/mysql/ [root@localhost/src]tar zxvf mysql-5.1.37.tar.gz [root@localhost/src]cd mysql- mysql-5.1.37 [root@localhost / mysql-5.1.37]./configure - with-charset=euckr - prefix=/usr/local/mysql Thank you for choosing MYSQ! 이라는메시지가뜰것이다. [root@localhost /mysql-5.1.37]make [root@localhost /mysql-5.1.37]make install MYSQL 의데이트를관리할기초적인테이블들이생성이된다. [root@localhost /mysql-5.1.37]cd /usr/local/mysql/bin [root@localhost /mysql-5.1.37]./mysql_install_db 보안상안전하도록 mysql 이라는유저와그룹을지정해서 mysql 을구동하도록한다. groupadd mysql useradd -g mysql mysql chown -R root /usr/local/mysql chown -R mysql /usr/local/mysql/var chgrp -R mysql /usr/local/mysql MySQL 소스를풀어둔디렉토리로돌아가 MySQL config 파일을 copy 한다. 메모리가 512MB 경우 my-large.cnf,1~2g 경우 my-huge.cnf,4g 경우 my-innodb-heavy- 4G.cnf cd /home/gihcuser/src/mysql-5.1.37
cp support-files/my-large.cnf /etc/my.cnf 부팅할때 mysql 을시작시키기위해서실행스크립트를 symbolic link 해준다. [root@www /rc3.d]ln s /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/rc3.d/s99mysql 3. PHP 인스톨하기 PHP_5.2.X 버전설치 http://php.net 에서다운받고압축을푼다. 압축이풀린디렉터리로이동해서 configure 한다. [root@localhost /src] wget http://kr2.php.net/get/php- 5.2.10.tar.gz/from/kr.php.net/mirror [root@localhost /src] tar zxvf php-5.2.8.tar.gz [root@localhost /src] cd php-5.2.8 [root@localhost /php-5.2.8]./configure --prefix=/usr/local/php --withapxs2=/usr/local/apache2 /bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-png-dir --with-zlib-dir -- with-jpeg-dir --with-kerberos --with-freetype-dir --enable-ftp --enable-sockets -- disable-debug --enable-magic-quotes --enable-gd-native-ttf --enable-dba=shared [root@localhost /php-5.2.8] make [root@localhost /php-5.2.8] make install 만일 libjpeg, libpng,freetype 부분에에러가발생하면 yum 으로해당 rpm 소스를설치해준다. 설치할때 3개의소스 devel에관한것도같이설치해야한다. 아파치가 2.x 버전이면 --with-apxs 이부분을 --with-apxs2 라고지정을해줘야한다. 자세한옵션은.configure - help more해서볼수있다. [root@localhost /php-5.2.8]make [root@localhost /php-5.2.8]make install 환경설정을해주기위해서아래처럼 ini 파일을만들어준다. [root@localhost /php-5.2.8]cp php.ini-dist /usr/local/lib/php.ini
아파치의 httpd.conf 파일을편집하여, 아래와같이해당라인을추가한다. <IfModule mod_dir.c> DirectoryIndex index.html index.php (index.php를추가해준다 ) AddType application/x-tar.tgz AddType application/x-httpd-php.php htm ( 한줄을추가한다. ) AddType application/x-httpd-php-source.phps ( 한줄을추가한다. ) so파일을찾을수있도록 ld.so.conf의맨아래줄에 mysqllib의디렉터리를지정해준다. [root@localhost /html]vi /etc/ld.so.conf /usr/local/mysql/lib/mysql 저장하고나와서적용될수있도록 ldconfig해준다 [root@localhost /etc] ldconfig Apache 에서인식할수있도록 Apache 를재실행시킨다. [root@localhost /] /usr/local/apache2/bin/apachectl restart 아래와같은간단한소스를 test.php라는파일로 /home/httpd/html 안에다만들어실행해본다. [root@www /html]vi test.php <? phpinfo();?> 그다음 http:// 작업하고있는서버도메인 or IP/test.php <- php 에대한정보가나오면 성공이다. 4. Zend Optimizer 설치 http://zend.org/store/free_download.php 에서최신버전의 Zend Optimizer 를다운받 는다. 기존 ZendOptimizer 와다르게최근버전은자동스크립트를제공해서기존처럼수동으로 라이브러리를옮겨주고설정하는수고를덜게했다. [root@localhost /src]tar zxvf ZendOptimizer-2[1].1.0b-Linux_glibc21-i386.tar.gz [root@localhost /src]cd ZendOptimizer-2.1.0b-Linux_glibc21-i386
[root@localhost /ZendOptimizer-2.1.0b-Linux_glibc21-i386]./install.sh 특별한변경사항없이기본으로 OK 를선택해서인스톨을마친다. 3.3.9 버전의경우에는 ZendOptimizer 디렉토리내부에서 PHP 버전에맞는버전의모듈파일을 임의의디렉토리에카피하고 php.ini 파일의끝부분에아래와같은내용을추가해준다. [Zend] Zend_optimizer.version=3.3.9 Zend_extension=/ 절대경로 /ZendOptimizer.so 본다. /home/httpd/html 에 ZendOptimizer 를통해서속도가얼마나향상되었는지 test2.php 를통해서확인해볼수있다. Optimization level 값을조절해가면서테스트해 [root@www /html]vi test2.php <? $start = time(); for ( $i = 1; $i <= 5000000; $i++ ); $t_time = time() - $start; echo "Time: $t_time";?> 5. Tomcat 설치 Tomcat 6.0.18 설치 (jdk-6-linux-i586 바이너리 )_ 1) jdk 바이너리설치파일다운로드 http://java.sun.com/j2se/downloads.html 예 )j2sdk-1_4_2_05-linux-i586.bin 리눅스기반의 jdk 1.4.2 바이너리 ) [root@localhost /src] tar zxvf apache-tomcat-6.0.18.tar.gz [root@localhost /src] mv apache-tomcat-6.0.18 /usr/local/ [root@localhost /src] ln -s apache-tomcat-6.0.18 tomcat 2) 설치파일실행 다음처럼다운받은설치파일을실행시키면 jdk-6-linux-i586 와같이
디렉토리가생성된다. [root@localhost /src]./ jdk-6-linux-i586.bin 버전및플랫폼에따라파일명은다를수있음. 3) 원하는설치경로에생성된디렉토리를옮긴다. [root@localhost /src] mv jdk1.6.0 /usr/local 4) 설치디렉토리를 jdk 및 jsdk 로심볼릭링크 [root@localhost /src] cd /usr/local [root@localhost /local] ln -s jdk1.6.0 java 아파치톰켓커넥터모듈설치 (jakarta-tomcat-connectors) 1) http://jakarta.apache.org/ 에서현재설치버전에맞는 커넥터소스파일을다운로드한다. [root@localhost /src] jakarta-tomcat-connectors-1.2.16-src.tar.gz 2) 해당파일의압축을풀고모듈을설치한다. [root@localhost /src] tar -zvxf jakarta-tomcat-connectors-1.2.16-src.tar.gz [root@localhost /src] cd jakarta-tomcat-connectors-1.2.16-src/jk/native [root@localhost /native]./configure --with-apxs=/usr/local/apache2/bin/apxs [root@localhost /native] make [root@localhost /native] make install 3) srcers.properties 파일을아파치 conf 디렉토리로복사한후아래와같이값을수정한다. [root@localhost /src] cp jakarta-tomcat-connectors-1.2.16-src /conf/srcers.properties /usr/local/apache2/conf/ JK Connetion LoadModule jk_module modules/mod_jk.so JkSrcersFile "/usr/local/apache2/conf/srcers.properties" JkLogFile "logs/mod_jk.log"
JkLogLevel error JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkMount /*.jsp ajp13 JkMount /admin ajp13 JkMount /admin/* ajp13 JkMount /jsp-examples ajp13 JkMount /jsp-examples/* ajp13 jkmount /servlets-examples ajp13 JkMount /servlets-examples/* ajp13 JkMount /webdav ajp13 JkMount /webdav/* ajp13 3) 아파치의 httpd.conf 에모듈설정부분을추가한다. LoadModule jk_module modules/mod_jk.so JkSrcersFile "/usr/local/apache-ssl/conf/srcers.properties" JkLogFile "/usr/local/tomcat/logs/mod_jk.log" JkLogLevel debug JkMount /examples ajp13 JkMount /examples/* ajp13 JkMount /*.jsp ajp13 JkMount /servlet/* ajp13 mysql jdbc 드라이버설치 bin.jar 1)http://dev.mysql.com/downloads/connector/j/5.1.html 에서드라이버파일다운로드후 tomcat/common/lib/ 에복사해넣는다. (tomcat restart 해야적용됨 ) [root@localhost /src] wget http://dev.mysql.com/get/downloads/connector-j/ mysql-connector-java-5.0.5.tar.gz/from/ftp://mirror.khlug.org/mysql/ [root@localhost mysql-connector-java-5.0.5.]]cp mysql-connector-java-5.0.5- /usr/local/tomcat/common/lib/
5.1.2.5 환경변수 PATH 설정 /etc/profile 에다음 PATH 설정부분을추가한다. java export JAVA_HOME=/usr/local/java export CATALINA_HOME=/usr/local/tomcat PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH export CLASSPATH=./:$JAVA_HOME/lib/tools.jar:/usr/local/tomcat/common/lib/servlet.jar /etc/profile 설정후바로 tomcat을가동시키려면 source /etc/profile 을실행하여설정내용이적용되도록한다. 5.1.3 VirtualHost 추가 (virtualhost 할때추가 ) 1) httpd.conf 설정 <VirtualHost XXX.XXX.XXX.XXX> DocumentRoot /home/httpd/html ServerName hosting.test.kr Options Indexes ExecCgi FollowSymlinks JkMount /examples/* ajp13 JkMount /*.jsp ajp13 JkMount /servlet/* ajp13 WebAppDeploy java connection /java CustomLog logs/hosting.inet.co.kr-access_log common </VirtualHost> 2) server.xml 설정 <Host name="hosting.test.kr" reloadable="true"> <Valve classname="org.apache.catalina.valves.accesslogvalve" directory="logs" prefix= hosting.inet.co.kr_access_log." suffix=".txt" pattern="combined" resolvehosts="false"/> <Context path="/java" docbase="/home/httpd/html/java" debug="0" reloadable="true" crosscontext="true" /> <Context path="" docbase="/home/httpd/html" debug="0" reloadable="true" crosscontext="true" />
</Host> 5.1.4. 서비스데몬가동 1) 아파치를가동한다. /uar/local/apache2/bin/apachectl start 2)tomcat 을가동시킨다. /usr/local/tomcat/bin/startup.sh