>> Edit article
이름
제목
패스워드
<html> <head> <title>Pbi12 - Server</title> <meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> </head> <body bgcolor="#FFFFFF" text="#000000"> <font face="Arial, Helvetica, sans-serif"> <font color="#CC6600" size="5" face="Georgia, Times New Roman, Times, serif">pbi12의 그대로 따라치면 웹서버 완성된다! </font></font> <p><font face="Arial, Helvetica, sans-serif"><br> <b>Apache-1.3.26 + PHP-4.2.2 + Mysql-3.23.51 + Imap-2002.RC2 + ZendOptimizer-1.3.3-Linux_glibc21</b></font></p> <p><font face="Arial, Helvetica, sans-serif">레드헷 7.3 에서 설치하였습니다. 문서 작성시기는 2002년 8월달 입니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">문서 제목이 pbi12의 그대로 따라치면 웹서버 완성된다! 인데, <br> 이건 예전에 제가 쓴 문서와 구별을 위한 것이니, 양해바랍니다. (--)(__)(--)</font></p> <p><font face="Arial, Helvetica, sans-serif">현재 보고 계신 문서는 HTML 버젼이며, TEXT 형태는 <b> <a href="http://linuxnew.com/%7Epbi12/lecture/pbi12-server.txt" target="_blank">여기</a></b>를 눌러 주세요.</font></p> <p><font face="Arial, Helvetica, sans-serif">문서에 대한 문의는 아래로 해주시면 감사하겠습니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">Written by <font color="#990033"><b>pbi12</b></font> <br> <a href="mailto:pbi12@hanmir.com%20">pbi12@hanmir.com </a><br> <a href="http://linuxnew.com" target="_blank">http://linuxnew.com</a></font></p> <p> </p> <p><font face="Arial, Helvetica, sans-serif" size="5" color="#990000"><br> < 차례 ></font></p> <p><font face="Arial, Helvetica, sans-serif"><br> <font size="4" color="#666666"><a href="#I">[ 빠른설치 ]</a></font></font></p> <p><font face="Arial, Helvetica, sans-serif" size="4" color="#666666">설치에 중요한 부분만 빠르게 설치할 수 있도록 하였습니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> <font size="4" color="#333333"> <a href="#II">[ 설정+설명+TIP 설치 ]</a></font></font></p> <p><font face="Arial, Helvetica, sans-serif" size="4" color="#333333"><a href="#1">1. 기존 패키지 삭제</a> <br> <a href="#2">2. 패키지 다운로드</a><br> <a href="#3">3. imap 설치</a><br> <a href="#4">4. MySQL의 설치 </a><br> <a href="#5">5. MySQL 서버의 실행 </a><br> <a href="#6">6. Apache 설정 </a><br> <a href="#7">7. PHP 컴파일과 설치 </a><br> <a href="#8">8. 아파치 컴파일과 설치 </a><br> <a href="#9">9. php.ini 파일 복사 </a><br> <a href="#10">10. httpd.conf 수정하기 </a><br> <a href="#11">11. 아파치 시작하기 </a><br> <a href="#12">12. 작동테스트 </a><br> <a href="#13">13. 부팅할 때 자동으로 서버 실행되게 설정하기 </a><br> <a href="#14">14. Zend Optimizer설치 </a><br> <a href="#15">15. 아파치 튜닝</a><br> <a href="#16">16. 서버 재시작</a><br> <a href="#17">17. 보안 관련 소식들</a></font></p> <p> </p> <p><font face="Arial, Helvetica, sans-serif"><br> <font size="5" face="Times New Roman, Times, serif" color="#0000CC">[ 빠른 설치 ]<a name="I"></a></font></font></p> <p><font face="Arial, Helvetica, sans-serif"><br> 설치과정만 설명없이 차례대로 적겠습니다.<br> 자세한 설정과 추가로한 설명들은 아래 부분의 [ 설정+설명+TIP 설치 ] 에 적었습니다.<br> 이 부분은 그냥 주요 설치부분만 쭉 적었습니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">이전에 작동하는 아파치와 mysql 프로세스 작동시에는 종료한후에 시작하세요.</font></p> <p><font face="Arial, Helvetica, sans-serif"># ps -ef|grep httpd<br> # killall httpd<br> # ps -ef|grep mysqld<br> # killall mysqld</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> <b>패키지 확인</b><br> # rpm -qa | grep apache <br> # rpm -qa | grep mysql <br> # rpm -qa | grep php <br> # rpm -qa | grep imap</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>패키지 삭제</b><br> # rpm -e --nodeps `rpm -qa | grep apache ` <br> # rpm -e --nodeps `rpm -qa | grep mysql ` <br> # rpm -e --nodeps `rpm -qa | grep php ` <br> # rpm -e --nodeps `rpm -qa | grep imap ` </font></p> <p><font face="Arial, Helvetica, sans-serif"><b>패키지 다운로드</b><br> 사이트를 방문하셔서 직접 받으실 수 있습니다.<br> 그게 귀찮으시다면, 제 홈페이지에 오셔서 받으시면 됩니다.<br> 게시판에 올려두었으니 아래 링크로 오셔서 받아주세요.</font></p> <p><font face="Arial, Helvetica, sans-serif">mysql <a href="http://linuxnew.com/zero/view.php?id=download&no=178" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=178</a><br> zend <a href="http://linuxnew.com/zero/view.php?id=download&no=178" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=177</a><br> php <a href="http://linuxnew.com/zero/view.php?id=download&no=176" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=176</a><br> apache <a href="http://linuxnew.com/zero/view.php?id=download&no=175" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=175</a><br> imap <a href="http://linuxnew.com/zero/view.php?id=download&no=174" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=174</a></font></p> <p><font face="Arial, Helvetica, sans-serif"><b>imap 설치</b><br> # tar zxvf imap-2002.RC2.tar.Z<br> # mv imap-2002.RC2 /usr/local/imap<br> # cd /usr/local/imap<br> # make slx<br> # cp imapd/imapd ipopd/ipop3d /usr/sbin</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>imap 설정</b><br> vi /etc/services 로 주석 없는지 확인<br> -------<br> pop3 110/tcp pop-3 # POP version 3<br> pop3 110/udp pop-3 <br> -------<br> imap 143/tcp imap2 # Interim Mail Access Proto v2<br> imap 143/udp imap2 <br> -------</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>xinetd 데몬으로 imapd와 ipop3d를 실행</b><br> # vi /etc/xinetd.d/imapd <br> imapd 실행을 위한 환경설정화일<br> < 파일내용 ></font></p> <p><font face="Arial, Helvetica, sans-serif">service imap<br> {<br> disable = no<br> socket_type = stream<br> wait = no<br> user = root<br> server = /usr/sbin/imapd<br> log_on_success += HOST DURATION<br> log_on_failure += HOST<br> }</font></p> <p><font face="Arial, Helvetica, sans-serif"># vi /etc/xinetd.d/ipop3d<br> ipop3d 실행을 위한 환경설정화일<br> < 파일내용 ></font></p> <p><font face="Arial, Helvetica, sans-serif">service pop3<br> {<br> disable = no<br> socket_type = stream<br> wait = no<br> user = root<br> server = /usr/sbin/ipop3d<br> log_on_success += HOST DURATION<br> log_on_failure += HOST<br> }</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>xinetd 데몬을 재가동해줍니다.</b><br> # /etc/init.d/xinetd restart </font></p> <p><font face="Arial, Helvetica, sans-serif"><b>MySQL의 설치 </b><br> # tar zxvf mysql_3.23.51.tar.gz<br> # cd mysql-3.23.51 <br> # ./configure --prefix=/usr/local/mysql --with-charset=euc_kr <br> # make;make install<br> # /usr/local/mysql/bin/mysql_install_db <br> # useradd mysql<br> # chown -R mysql.mysql /usr/local/mysql/var</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>mysql 계정의 설정</b><br> # vipw 를 실행하여서 mysql 의 뒷쪽에 있는 /bin/bash 를 삭제해 줍니다.<br> mysql:x:500:500::/home/mysql:/bin/bash <-- 이 /bin/bash 부분을<br> 계정이름 uid gid 기본홈 유저의쉘<br> mysql:x:500:500::/usr/local/mysql/var:/sbin/nologin 이렇게 해줍니다.<br> :x를 통해 저장후 종료하게 되면 아래와 같이 나오면, <br> You are using shadow passwords on this system.<br> Would you like to edit /etc/shadow now [y/n] <br> n 이라고 하면 됩니다.<br> # rm -rf /home/mysql</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>MySQL 서버의 실행 </b><br> # /usr/local/mysql/bin/safe_mysqld --language=korean &<br> # /usr/local/mysql/bin/mysql <br> # /usr/local/mysql/bin/mysqladmin -uroot password '새로지정할암호'<br> # mysql -uroot -p 로 하고 암호를 치고 접속확인</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> <b>편의를 위해 PATH를 걸어 준다</b><br> # vi /etc/profile 로 수정<br> export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC <-- 이라인 아래에 <br> export PATH=$PATH:.:/usr/local/apache/bin:/usr/local/mysql/bin:/usr/sbin<br> 이렇게 추가 합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>Apache 설정 </b><br> # tar zxvf apache_1.3.26.tar.gz<br> # mv apache_1.3.26 /usr/local/apache <br> # cd /usr/local/apache <br> # ./configure</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>PHP 컴파일과 설치 </b><br> # tar zxvf php_4.2.2.tar.gz<br> # mv php-4.2.2 /usr/local/php <br> # cd /usr/local/php<br> # ./configure --with-mysql=/usr/local/mysql --with-exec-prefix=/usr/local/bin --with-imap=/usr/local/imap --with-apache=/usr/local/apache --enable-track-vars --disable-debug --with-gd --with-language=korean --with-charset=euc_kr<br> # make;make install </font></p> <p><font face="Arial, Helvetica, sans-serif"><b>아파치 컴파일과 설치 </b><br> # cd /usr/local/apache <br> # ./configure --activate-module=src/modules/php4/libphp4.a --enable-shared=max<br> # make;make install</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>php.ini 파일 복사 </b><br> # cd /usr/local/php <br> # cp php.ini-dist /usr/local/lib/php.ini </font></p> <p><font face="Arial, Helvetica, sans-serif"><b>php.ini 내용수정</b><br> upload_max_filesize = 10M 업로드 용량의 수정이 필요하신 분은 수정하세요.<br> register_globals = On 그리고 전역변수의 사용이 필요하신 분은 수정하세요!</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>httpd.conf 수정하기 </b><br> # vi /usr/local/apache/conf/httpd.conf <br> AddType application/x-tar .tgz 이 부분이 있으면, 이 아래에 <br> AddType application/x-httpd-php .php<br> AddType application/x-httpd-php .php3<br> AddType application/x-httpd-php .html<br> AddType application/x-httpd-php .htm<br> AddType application/x-httpd-php-source .phps<br> AddType application/x-httpd-php .inc<br> AddType application/x-httpd-php .phtml<br> 이렇게 추가 해줍니다.<br> 그리고 (DirectoryIndex index.html 부분을 찾아서 다음과 같이 index.php 를 추가합니다.) <br> DirectoryIndex index.html index.htm index.php </font></p> <p><font face="Arial, Helvetica, sans-serif">※ #ServerName localhost (이 부분의 주석(#)을 꼭 지웁니다.) <- localhost를 아이피로 변경하세요!</font></p> <p><font face="Arial, Helvetica, sans-serif">:wq 나 :x 로 저장하시고 나오세요. </font></p> <p><font face="Arial, Helvetica, sans-serif"><b>아파치 서버 실행 </b><br> # /usr/local/apache/bin/apachectl start <br> 아파치 서버 종료<br> # /usr/local/apache/bin/apachectl stop <br> 아피치 서버 재시작<br> # /usr/local/apache/bin/apachectl restart </font></p> <p><font face="Arial, Helvetica, sans-serif"><b>부팅할 때 자동으로 서버 실행되게 설정하기 </b></font></p> <p><font face="Arial, Helvetica, sans-serif"># vi /etc/rc.d/rc.local 파일에 추가 </font></p> <p><font face="Arial, Helvetica, sans-serif">#mysql start<br> /usr/local/mysql/bin/safe_mysqld --language=korean &<br> #apache start<br> /usr/local/apache/bin/apachectl start &</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>Zend Optimizer설치 </b><br> # tar zxvf ZendOptimizer-1.3.3-Linux_glibc21-i386.tar.gz<br> # cd ZendOptimizer-1.3.3-Linux_glibc21-i386<br> # ./install.sh<br> 이제 차례대로 질문에 답을 하면 됩니다.<br> Default 값이 다 우리가 셋팅한 값으로 되어 있어서 엔터만 치시면 됩니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"><b>아파치 재시작</b><br> # /usr/local/apache/bin/apachectl restart</font></p> <p><font face="Arial, Helvetica, sans-serif">여기까지 한후에 잘 되는지 간단한 테스트 해보시고, 서버를 리붓시켜서 서버가 원격에서 리붓했을때에도 <br> 잘되는지도 확인할겸 키보드와 모니터를 제거한후에 리붓을 해주십시요.<br> # /sbin/shutdown -r now 이나 <br> # /sbin/reboot 으로 하시면 됩니다.<br> 여기서 주의 할점은 CMOS 셋업에서 키보드와 모니터등 특정장치가 없을시엔 부팅이 안되는 설정이 되어 있다면<br> 원격에서 리붓시키면 CMOS 셋업 설정때문에 부팅이 안된다는 것입니다.<br> 만약 리붓을 했는데, 부팅이 안되신다면 CMOS 셋업에서 장치가 없어서 에러로 처리하는 부분을 <br> NO ERROR 로 키보드가 안 꼽아져 있더라도 부팅이 되도록 해주셔야 합니다.</font></p> <p> </p> <p> </p> <p></p> <p></p> <p><font face="Times New Roman, Times, serif" size="5" color="#0000CC">[ 설정+설명+TIP 설치 ]<a name="II"></a></font></p> <p><font face="Arial, Helvetica, sans-serif"><br> 위의 퀵설치에는 없는 설명과 자세한 설정들과 간단한 TIP 들이 포함 되어 있습니다.<br> 빠른 설치를 원하시면 윗 부분을 참고하세요.<br> 보통 처음 설치하시는 분들이나 설정 참고 하실 분들은 여기부터 보시면서 셋팅하세요.</font></p> <p> </p> <p><font face="Arial, Helvetica, sans-serif"><br> <b><font size="4" color="#666600">1. 기존 패키지 삭제 <a name="1"></a></font></b></font></p> <p><font face="Arial, Helvetica, sans-serif">기존의 있던 패키지가 있는데 덮어 깔게 되면 고생하신게 물거품이 되버립니다.^^; <br> rpm으로 설치되어 이전의 프로세스가 돌아가는 것이 있다면 종료후에 아래와 같이 삭제 합니다.<br> 프로세스 검색은 ps -ef | grep httpd 처럼 해주신후에 만약 발견되면 killall httpd 를 해주시면 됩니다.<br> mysql 도 작동 하고 있다면 ps -ef | grep mysql로 검색하셔서 종료시킨후에 시작하세요~</font></p> <p><font face="Arial, Helvetica, sans-serif"># ps -ef|grep httpd<br> # killall httpd<br> # ps -ef|grep mysqld<br> # killall mysqld</font></p> <p><font face="Arial, Helvetica, sans-serif"># rpm -qa | grep apache </font></p> <p><font face="Arial, Helvetica, sans-serif"># rpm -qa | grep mysql </font></p> <p><font face="Arial, Helvetica, sans-serif"># rpm -qa | grep php </font></p> <p><font face="Arial, Helvetica, sans-serif"># rpm -qa | grep imap</font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 패키지가 깔렸는지 확인을 먼저 하시구요... <br> 그다음에... <br> 위 명령의 결과로 패키지들이 나온다면 'rpm -e 패키지' 명령을 하여 모두 삭제합니다. </font></p> <p><font face="Arial, Helvetica, sans-serif">의존성이 걸려있다고 나온다면 그 의존성 나온것부터 먼저 지운다음에 나중에 의존성이 풀린후에 <br> 다시 지우셔야 합니다... </font></p> <p><font face="Arial, Helvetica, sans-serif">의존성 걸린거 하나하나 지우기 귀찮으시면 강제로 전체 걸리는 패키지를<br> # rpm -e --nodeps `rpm -qa | grep apache ` <br> # rpm -e --nodeps `rpm -qa | grep mysql ` <br> # rpm -e --nodeps `rpm -qa | grep php ` <br> # rpm -e --nodeps `rpm -qa | grep imap ` <br> 이렇게 지우시면 됩니다.... </font></p> <p> </p> <p><font face="Arial, Helvetica, sans-serif"><br> <b><font color="#666600" size="4">2. 패키지 다운로드<a name="2"></a></font></b></font></p> <p><font face="Arial, Helvetica, sans-serif">사이트를 방문하셔서 직접 받으실 수 있습니다.<br> 그게 귀찮으시다면, 제 홈페이지에 오셔서 받으시면 됩니다.<br> 게시판에 올려두었으니 패키지 이름 아래 링크로 오셔서 받아주세요.</font></p> <p><font face="Arial, Helvetica, sans-serif">Apache <br> <a href="http://www.apache.org" target="_blank">http://www.apache.org</a><br> apache_1.3.26.tar.gz<br> <a href="http://linuxnew.com/zero/view.php?id=download&no=175" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=175</a></font></p> <p><font face="Arial, Helvetica, sans-serif">mysql <br> <a href="http://www.mysql.com" target="_blank">http://www.mysql.com</a><br> mysql-3.23.51.tar.gz<br> <a href="http://linuxnew.com/zero/view.php?id=download&no=178" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=178</a></font></p> <p><font face="Arial, Helvetica, sans-serif">php <br> <a href="http://www.php.net" target="_blank">http://www.php.net</a><br> php-4.2.2.tar.gz<br> <a href="http://linuxnew.com/zero/view.php?id=download&no=176" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=176</a></font></p> <p><font face="Arial, Helvetica, sans-serif">imap<br> <a href="ftp://ftp.cac.washington.edu/imap" target="_blank">ftp://ftp.cac.washington.edu/imap</a><br> imap-2002.RC2.tar.Z<br> <a href="http://linuxnew.com/zero/view.php?id=download&no=174" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=174</a></font></p> <p><font face="Arial, Helvetica, sans-serif">Zend<br> <a href="https://www.zend.com" target="_blank">https://www.zend.com</a><br> ZendOptimizer-1.3.3-Linux_glibc21-i386.tar.gz<br> <a href="http://linuxnew.com/zero/view.php?id=download&no=177" target="_blank">http://linuxnew.com/zero/view.php?id=download&no=177</a></font></p> <p><font face="Arial, Helvetica, sans-serif"><br> 모두 소스버젼으로 직접 컴파일하면 됩니다... </font></p> <p><font face="Arial, Helvetica, sans-serif">디렉토리는 <br> Apache<br> /usr/local/apache </font></p> <p><font face="Arial, Helvetica, sans-serif">php - 4.2.2 버젼의 php.ini 디폴트 옵션에 전역변수가 OFF 되어있으니 필요하신 분들은 ON 으로 변경해야 합니다.<br> 이 옵션 입니다. register_globals = On 주의 하세요~<br> /usr/local/php </font></p> <p><font face="Arial, Helvetica, sans-serif">mysql<br> /usr/local/mysql </font></p> <p> </p> <p></p> <p><b><font face="Arial, Helvetica, sans-serif" color="#666600" size="4">3. imap 설치<a name="3"></a></font></b></p> <p><font face="Arial, Helvetica, sans-serif"># tar zxvf imap-2002.RC2.tar.Z<br> # mv imap-2002.RC2 /usr/local/imap<br> # cd /usr/local/imap</font></p> <p><font face="Arial, Helvetica, sans-serif">압축을 풀은후에 </font></p> <p><font face="Arial, Helvetica, sans-serif"># make slx 로 imap을 컴파일 합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">컴파일이 완료되면 imapd 디렉토리에 imapd가 ipopd디렉토리에는 ipop3d가 생성됩니다.<br> 그 둘을 /sbin에 복사합니다.<br> # cp imapd/imapd ipopd/ipop3d /usr/sbin<br> 그리고 <br> vi /etc/services 파일에서 <br> -------<br> pop3 110/tcp pop-3 # POP version 3<br> pop3 110/udp pop-3 <br> -------<br> imap 143/tcp imap2 # Interim Mail Access Proto v2<br> imap 143/udp imap2 <br> -------<br> 이렇게 앞에 주석처리가 안되있는지 확인해서 만약 주석처리 되있으면 지우시고, 없으면 그냥 놔두면 됩니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">xinetd 데몬으로 imapd와 ipop3d를 실행시키기 위해서 아래 파일을 생성합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"># vi /etc/xinetd.d/imapd <br> imapd 실행을 위한 환경설정화일<br> < 파일내용 ></font></p> <p><font face="Arial, Helvetica, sans-serif">service imap<br> {<br> disable = no<br> socket_type = stream<br> wait = no<br> user = root<br> server = /usr/sbin/imapd<br> log_on_success += HOST DURATION<br> log_on_failure += HOST<br> }</font></p> <p><font face="Arial, Helvetica, sans-serif"># vi /etc/xinetd.d/ipop3d<br> ipop3d 실행을 위한 환경설정화일<br> < 파일내용 ></font></p> <p><font face="Arial, Helvetica, sans-serif">service pop3<br> {<br> disable = no<br> socket_type = stream<br> wait = no<br> user = root<br> server = /usr/sbin/ipop3d<br> log_on_success += HOST DURATION<br> log_on_failure += HOST<br> }</font></p> <p><font face="Arial, Helvetica, sans-serif">이제 xinetd 데몬을 재가동해줍니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"># /etc/init.d/xinetd restart </font></p> <p><font face="Arial, Helvetica, sans-serif">그리고 접속이 잘 되는지 확인합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">110번 포트는 pop 이고, 143번 포트는 imap 입니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"># telnet localhost 110</font></p> <p><font face="Arial, Helvetica, sans-serif">Trying 127.0.0.1...<br> Connected to localhost.localdomain.<br> Escape character is '^]'.<br> +OK POP3 localhost.localdomain v2001.78 server ready</font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 나오면 잘된겁니다.<br> quit 를 치고 나오시면 됩니다.</font></p> <p> </p> <p></p> <p><b><font face="Arial, Helvetica, sans-serif" size="4" color="#666600">4. MySQL의 설치 <a name="4"></a></font></b></p> <p><font face="Arial, Helvetica, sans-serif"># tar zxvf mysql_3.23.51.tar.gz</font></p> <p><font face="Arial, Helvetica, sans-serif"># cd mysql-3.23.51 </font></p> <p><font face="Arial, Helvetica, sans-serif"># ./configure --prefix=/usr/local/mysql --with-charset=euc_kr </font></p> <p><font face="Arial, Helvetica, sans-serif"># make;make install</font></p> <p><font face="Arial, Helvetica, sans-serif"># /usr/local/mysql/bin/mysql_install_db </font></p> <p><font face="Arial, Helvetica, sans-serif">--prefix=/usr/local/mysql 는 MySQL 서버가 설치된 경로를 지정하는 것이며, <br> --with-charset=euc_kr 는 데이터베이스에서 한글데이터의 정렬을 위해 한글 문자셋을 사용 가능하게 설정하는 것입니다. </font></p> <p><font face="Arial, Helvetica, sans-serif">주의할점은... <br> mysql_install_db 스크립트는 반드시 한번만 실행하도록 합니다. <br> 여러번 실행할 경우 서버가 정상적으로 실행되지 않습니다. </font></p> <p><font face="Arial, Helvetica, sans-serif">이 버젼에선 mysql 의 계정을 새로 추가 하여서 mysql 권한으로 돌아가게 하시거나 root 권한으로 띄울 수 있습니다.<br> # /usr/local/mysql/bin/safe_mysqld --user=root & <br> 위처럼 띄울 수 있지만 계정을 만들어서 하겠습니다.<br> 일단 mysql 그룹을 만들고 계정을 mysql그룹으로 설정해서 만듭니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">계정을 만들시에 그룹을 지정하지 않으면 계정이름과 동일하게 계정이 생성됩니다.<br> 그리고 chown 으로 유저 소유권과 그룹 소유권을 지정할 때에는 mysql.mysql 로 하시면, <br> mysql 유저와 . mysql 그룹으로 . 으로 구분하여 지정이 됩니다.<br> 보안을 위해서 /usr/local/mysql/data 의 데이터들을 지정해 줍니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"># useradd mysql<br> # chown -R mysql.mysql /usr/local/mysql/var</font></p> <p><font face="Arial, Helvetica, sans-serif">그리고 mysql 계정이 쉘을 가지고 있으므로 이것을 삭제 해줍니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"># vipw 를 실행하여서 mysql 의 뒷쪽에 있는 /bin/bash 를 삭제해 줍니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">mysql:x:500:500::/home/mysql:/bin/bash <-- 이 /bin/bash 부분을<br> 계정이름 uid gid 기본홈 유저의쉘</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> mysql:x:500:500::/usr/local/mysql/var:/sbin/nologin 이렇게 해줍니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> :x를 통해 저장후 종료하게 되면 아래와 같이 나오면, </font></p> <p><font face="Arial, Helvetica, sans-serif">You are using shadow passwords on this system.<br> Would you like to edit /etc/shadow now [y/n] </font></p> <p><font face="Arial, Helvetica, sans-serif">n 이라고 하면 됩니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">그리고 계정 생성시 초기 홈디렉토리인 /home/mysql를 삭제 합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"># rm -rf /home/mysql</font></p> <p><font face="Arial, Helvetica, sans-serif">mysql 계정정보를 이렇게 변경해 주시면 됩니다.</font></p> <p> </p> <p></p> <p><b><font face="Arial, Helvetica, sans-serif" size="4" color="#666600">5. MySQL 서버의 실행 <a name="5"></a></font></b></p> <p><font face="Arial, Helvetica, sans-serif">/usr/local/mysql/bin/safe_mysqld --language=korean &</font></p> <p><font face="Arial, Helvetica, sans-serif"># /usr/local/mysql/bin/mysql </font></p> <p><font face="Arial, Helvetica, sans-serif">실행하셔서 되는지 확인하시구요~~ </font></p> <p><font face="Arial, Helvetica, sans-serif"># /usr/local/mysql/bin/mysqladmin -uroot password '새로지정할암호'<br> 이렇게 해서 root의 암호를 지정해 줍니다.<br> 그리고 다음 접속부터는 mysql -uroot -p 로 하고 암호를 치고 접속하면 됩니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">이제 tar 풀었던 것은 지우셔두 됩니다^^; <br> /usr/local/mysql에 설치가 되었으니깐요~ </font></p> <p><font face="Arial, Helvetica, sans-serif"><br> ※ 여기서 원격 관리시 편하게 PATH를 걸어 줍니다.<br> # vi /etc/profile 을 해서 </font></p> <p><font face="Arial, Helvetica, sans-serif">export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC <-- 이라인 아래에 </font></p> <p><font face="Arial, Helvetica, sans-serif">export PATH=$PATH:.:/usr/local/apache/bin:/usr/local/mysql/bin:/usr/sbin</font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 적어 줍니다.<br> 그러면 apache와 mysql, /usr/sbin 의 원격에서 관리시에 편합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">참고로 mysql 의 관리툴은 웹에서 관리하도록 된 phpmyadmin 과 원격 컴퓨터에서 관리할 수 있도록<br> 되어 있는 TMysql 이 편리 합니다.<br> phpmyadmin 은 외국 프로그램으로 <a href="http://sourceforge.net/projects/phpmyadmin/" target="_blank">http://sourceforge.net/projects/phpmyadmin/</a> 소스포지에서 받으시면 편합니다. <br> <a href="http://linuxnew.com" target="_blank"> 물론 제 홈페이지에도 올려두었습니다.</a><br> 설정은 간단히 config.inc.php 설정 파일에 자신의 mysql 아이디와 암호만 적어주면 웹상에서 접속 됩니다. 접속하신후에 하나씩 살펴보시면 쉽게 익숙해질 수 있을 것입니다.<br> 그리고 우리나라 제품인 TMysql 은 <a href="http://www.thinktech.co.kr/" target="_blank">http://www.thinktech.co.kr/</a> 씽크텍이라는 곳에서 만든 제품으로 무료 제품으로 윈도우에서 설치한후에 리눅스 mysql 을 관리 할 수 있도록 만든 툴입니다.<br> <a href="http://linuxnew.com" target="_blank">이 프로그램도 무료배포가 허용 된 것이므로 제 홈페이지에 올려두었습니다.</a><br> 이 프로그램은 원격에서 접속을 한다는 점때문에 mysql의 host명에 주의를 해야 합니다.<br> host에 접속할 곳의 아이피를 적던지 아니면 모두 들어올수 있게하는 %를 적어야 원격에서 접속할 수 있게 해주기 때문에 약간의 주의가 필요합니다.<br> 기본 localhost로 되어 있기때문에 사람들이 이부분에서 혼동을 많이 하게 됩니다.<br> mysql의 관리는 이렇게 하면 편하다는 참고사항 이였습니다^^</font></p> <p> </p> <p></p> <p><b><font face="Arial, Helvetica, sans-serif" color="#666600" size="4">6. Apache 설정 <a name="6"></a></font></b></p> <p><font face="Arial, Helvetica, sans-serif"># tar zxvf apache_1.3.26.tar.gz</font></p> <p><font face="Arial, Helvetica, sans-serif"># mv apache_1.3.26 /usr/local/apache </font></p> <p><font face="Arial, Helvetica, sans-serif">아파치를 /usr/local/apache 에다가 풀은 것을 이곳에다가 옮긴후에 </font></p> <p><font face="Arial, Helvetica, sans-serif"># cd /usr/local/apache </font></p> <p><font face="Arial, Helvetica, sans-serif"># ./configure</font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 함으로써 apache의 디렉토리를 설정하게 됩니다... </font></p> <p> </p> <p></p> <p><font face="Arial, Helvetica, sans-serif" color="#666600" size="4"><b>7. PHP 컴파일과 설치</b> <a name="7"></a></font></p> <p><font face="Arial, Helvetica, sans-serif"># tar zxvf php_4.2.2.tar.gz</font></p> <p><font face="Arial, Helvetica, sans-serif"># mv php-4.2.2 /usr/local/php </font></p> <p><font face="Arial, Helvetica, sans-serif"># cd /usr/local/php</font></p> <p><font face="Arial, Helvetica, sans-serif">php를 /usr/local/php에다가 푼것을 옮기신후에 </font></p> <p><font face="Arial, Helvetica, sans-serif"># ./configure --with-mysql=/usr/local/mysql --with-exec-prefix=/usr/local/bin --with-imap=/usr/local/imap --with-apache=/usr/local/apache --enable-track-vars --disable-debug --with-gd --with-language=korean --with-charset=euc_kr</font></p> <p><font face="Arial, Helvetica, sans-serif">이 옵션들은 차례대로 mysql연동, /usr/local/bin 안에 php 바이너리파일을 넣는 옵션입니다.<br> imap, apache 연동, --enable-track-vars 옵션은 HTTP_GET_VARS, HTTP_POST_VARS, HTTP_COOKIE_VARS 배열에 들어 있는 <br> GET, POST, cookie 변수들이 어디서 왔는지 기억하며, --disable-debug 옵션은 Zend Optimizer 를 위한 옵션입니다.<br> 그리고 gd 라이브러리 옵션이고, 마지막은 한국어 설정이며, 문자셋 지정도 한국어로 했습니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"># make;make install </font></p> <p><font face="Arial, Helvetica, sans-serif">여기서 컴파일 하므로써 apache 안의 src아래 module 에 php4가 생성 되는 것입니다.<br> 그래서 아래 아파치 컴파일시에 --activate-module=src/modules/php4/libphp4.a 라는 옵션이 들어가는 것입니다.<br> 그러므로 php가 컴파일 잘 되었는지 확인하실려면 <br> /usr/local/apache/src/module/php4안에 php의 모듈들이 잘 들어와있는지 확인하시면 됩니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 하셔서 설치를 하시면 mysql과 apache가 php와 연동이 됩니다^^; </font></p> <p> </p> <p></p> <p><b><font face="Arial, Helvetica, sans-serif" size="4" color="#666600">8. 아파치 컴파일과 설치 <a name="8"></a></font></b></p> <p><font face="Arial, Helvetica, sans-serif">여기서 주의 할 점은 php 모듈이 기본적으로 패키지에 안들어 있다는 것입니다.<br> 그러므로 php모듈을 apache 디렉토리의 src/modules/php4아래에 넣어주는 과정인 php설치를 마친후에 컴파일을 하셔야 하는 것입니다.<br> 우리는 이미 7과정을 지나왔기때문에 src/modules/php4/libphp4.a 가 생겨 있게 되는 것입니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">그리고 아파치의 동적 설치란 DSO(Dynamic Shared Object)방식으로 설치하는 것을 말합니다.<br> DSO방식은 아파치를 먼저 컴파일하고 다른 모듈들을 추가로 설치할 때는 아파치를 재 컴파일하지 않고 한번 설정되어 컴파일된 아파치를 계속 사용하는 것으로 한번 설치하고 나면 필요한 모듈을 추가를 하여서 사용하므로 관리는 편리하지만 서버 시작이 20% 정도 느려질 수 있으며 실행속도가 5% 정도 느려질 수 있습니다. <br> 설치법은 아파치 configure 시에 --enable-shared=max 또는 all 을 추가하여 설치하는 것을 말하고 반대의 방식으로 --enable-shared 옵션을 제거후 설치하면 정적 설치로 필요한 모듈을 추가할 때마다 아파치를 재 컴파일 해주어야 하므로 PHP 업그레이드시에 항상 아파치를 재 설치 해주셔야 합니다. 이 방식은 DSO방식에 비하여 속도가 빠릅니다. <br> 여기서 --enable-module=so 는 dynamic shared object를 사용하겠다는 것입니다. --enable-shared=all 이 이미 DSO 설치를 뜻하므로 이 옵션은 생략해도 됩니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">하지만 시스템 측면에서 보면, 먼저 DSO는 아파치에 설치된 모듈이 필요할 때 시스템에 적재되므로 이는 클라이언트의 요청에 응답하는 요청시간이 다소 느릴 수 있지만, 하드웨어의 속도가 뒷받침된다면 어느 정도 해결이 될 수 있으며, 시스템의 리소스(메모리, CPU)들을 적절하게 효율적으로 사용한다고 볼 수 있습니다.<br> 또 다른 방식인 Static 방식은 아파치에 추가된 모듈이 아파치의 기동과 함께 모든 모듈을 포함하여 시스템에 적재하기 때문에 만약 아파치의 기동과 함께 적재된 어떤 모듈이 클라이언트에 의해 거의 쓰지 않는다면 쓸데없이 시스템 리소스를 점유하고 있으므로 이는 비효율적이라 볼 수 있습니다. 또한 아파치와 각 모듈들은 설치시 복잡하며, 각 모듈과 설정된 아파치에 또 다시 모듈을 추가하려 할 때 아파치와 모듈을 다시 컴파일하여야 합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">이 부분은 사용자들께서 원하시는 방법을 택하시면 됩니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> # cd /usr/local/apache </font></p> <p><font face="Arial, Helvetica, sans-serif">/usr/local/apache에 가셔서... </font></p> <p><font face="Arial, Helvetica, sans-serif"># ./configure --activate-module=src/modules/php4/libphp4.a --enable-shared=max</font></p> <p><font face="Arial, Helvetica, sans-serif"># make;make install</font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 하여 apache를 설치합니다... </font></p> <p> </p> <p></p> <p><b><font face="Arial, Helvetica, sans-serif" size="4" color="#666600">9. php.ini 파일 복사 <a name="9"></a></font></b></p> <p><font face="Arial, Helvetica, sans-serif"># cd /usr/local/php </font></p> <p><font face="Arial, Helvetica, sans-serif"># cp php.ini-dist /usr/local/lib/php.ini </font></p> <p><font face="Arial, Helvetica, sans-serif">php.ini-dist라는 파일을 /usr/local/lib에다가 php.ini로 이름을 바꾸어서 옮기는 겁니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">php.ini 안의 내용중에 </font></p> <p><font face="Arial, Helvetica, sans-serif">upload_max_filesize = 10M 업로드 용량의 수정이 필요하신 분은 수정하세요.</font></p> <p><font face="Arial, Helvetica, sans-serif">register_globals = On 그리고 전역변수의 사용이 필요하신 분은 수정하세요!</font></p> <p><font face="Arial, Helvetica, sans-serif">그럼 php 는 설정이 끝납니다.</font></p> <p> </p> <p></p> <p><font face="Arial, Helvetica, sans-serif" size="4" color="#666600"><b>10. httpd.conf 수정하기 <a name="10"></a></b></font></p> <p><font face="Arial, Helvetica, sans-serif"># vi /usr/local/apache/conf/httpd.conf </font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 치셔서 설정파일을 보시고... </font></p> <p><font face="Arial, Helvetica, sans-serif">AddType application/x-tar .tgz 이 부분이 있으면, <br> 이 아래에 </font></p> <p><font face="Arial, Helvetica, sans-serif"> AddType application/x-httpd-php .php<br> AddType application/x-httpd-php .php3<br> AddType application/x-httpd-php .html<br> AddType application/x-httpd-php .htm<br> AddType application/x-httpd-php-source .phps<br> AddType application/x-httpd-php .inc<br> AddType application/x-httpd-php .phtml</font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 추가 해줍니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">에러페이지의 이동을 지정해 주고 싶으시면 </font></p> <p><font face="Arial, Helvetica, sans-serif">ErrorDocument 403 http://linuxnew.com<br> ErrorDocument 404 http://linuxnew.com<br> ErrorDocument 500 http://linuxnew.com</font></p> <p><font face="Arial, Helvetica, sans-serif">에러 코드별로 적어주시면 됩니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">그리고 (DirectoryIndex index.html 부분을 찾아서 다음과 같이 index.php 를 추가합니다.) </font></p> <p><font face="Arial, Helvetica, sans-serif">DirectoryIndex index.html index.htm index.php </font></p> <p><font face="Arial, Helvetica, sans-serif">※ #ServerName localhost (이 부분의 주석(#)을 꼭 지웁니다.) <- localhost를 아이피로 변경하세요!</font></p> <p><font face="Arial, Helvetica, sans-serif">:wq 나 :x 로 저장하시고 나오세요. </font></p> <p><font face="Arial, Helvetica, sans-serif">* 이렇게 해주시면 php 파일을 아파치가 실행시켜 줍니다. </font></p> <p><font face="Arial, Helvetica, sans-serif">--잘 아시는 분들은 쓸데없는 주석의 행들은 다 지워주시는게 나을 꺼에요^^; </font></p> <p><font face="Arial, Helvetica, sans-serif">그리고 특정 에이전트들을 막으시거나 이미지 파일의 로그는 남기고 싶지 않으실때는 <br> <IfModule mod_setenvif.c> 여기 안쪽에 아래와 같이 넣어주시면 됩니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">============================================================================<br> # 특정 Agent 접근 거부<br> BrowserMatch "WebZIP" go_out<br> BrowserMatch "Teleport" go_out<br> BrowserMatch "GetRight" go_out<br> BrowserMatch "FlashGet" go_out<br> BrowserMatch "JetCar" go_out<br> BrowserMatch "Go!Zilla" go_out<br> BrowserMatch "NamoWebEditor" go_out<br> BrowserMatch "Namo" go_out<br> BrowserMatch "MSFrontPage" go_out<br> BrowserMatch "WebTrack-HTTPP" go_out<br> BrowserMatch "WebSymmetrix" go_out</font></p> <p><font face="Arial, Helvetica, sans-serif"># 로컬 호스트 접속일때 로그 남기지 않음<br> SetEnvIf Remote_Addr "^127.0.0.1$" not_log<br> # 이미지 파일 자바스크립트 파일등.. 남기지 않음.<br> SetEnvIfNoCase Request_URI ".(bmp|gif|jpg|jpeg|png|css|js|java)$" not_log</font></p> <p><font face="Arial, Helvetica, sans-serif"># 엔진 로봇 로그를 남기 않음<br> BrowserMatchNoCase "ru-robot" not_log a_robot<br> BrowserMatchNoCase "Slurp/si" not_log a_robot<br> BrowserMatchNoCase "Mercator" not_log a_robot<br> BrowserMatchNoCase "Gulliver" not_log a_robot<br> BrowserMatchNoCase "SyncIT/" not_log a_robot<br> BrowserMatchNoCase "FAST-WebCrawler" not_log a_robot<br> BrowserMatchNoCase "Lycos_Spider" not_log a_robot<br> BrowserMatchNoCase "^ia_archive" not_log a_robot<br> BrowserMatchNoCase "^tv" not_log a_robot<br> BrowserMatchNoCase "Scooter" not_log a_robot<br> BrowserMatchNoCase "ZyBorg/" not_log a_robot<br> BrowserMatchNoCase "KIT-Fireball" not_log a_robot<br> BrowserMatchNoCase "Googlebot/" not_log a_robot<br> BrowserMatchNoCase "DIIbot/" not_log a_robot<br> BrowserMatchNoCase "teoma_agent3" not_log a_robot<br> BrowserMatchNoCase "empas_robot" not_log a_robot</font></p> <p><font face="Arial, Helvetica, sans-serif">============================================================================</font></p> <p> </p> <p></p> <p><b><font face="Arial, Helvetica, sans-serif" size="4" color="#666600">11. 아파치 시작하기 <a name="11"></a></font></b></p> <p><font face="Arial, Helvetica, sans-serif">아파치 서버는 다음과 같이 실행합니다. </font></p> <p><font face="Arial, Helvetica, sans-serif"># /usr/local/apache/bin/apachectl start </font></p> <p><font face="Arial, Helvetica, sans-serif">아파치 서버의 실행을 종료하고 싶다면, </font></p> <p><font face="Arial, Helvetica, sans-serif"># /usr/local/apache/bin/apachectl stop </font></p> <p><font face="Arial, Helvetica, sans-serif">아피치 서버를 재시작 하고 싶다면, </font></p> <p><font face="Arial, Helvetica, sans-serif"># /usr/local/apache/bin/apachectl restart </font></p> <p><font face="Arial, Helvetica, sans-serif">와 같이 합니다. </font></p> <p> </p> <p></p> <p><font face="Arial, Helvetica, sans-serif" color="#666600" size="4"><b>12. 작동테스트 <a name="12"></a> </b> </font></p> <p><font face="Arial, Helvetica, sans-serif">/usr/local/apache/htdocs 디렉토리에 아래와 같이 pbi12.php 파일을 만들고 브라우저로 열어봅니다. </font></p> <p><font face="Arial, Helvetica, sans-serif"># cat > pbi12.php </font></p> <p><font face="Arial, Helvetica, sans-serif"><? </font></p> <p><font face="Arial, Helvetica, sans-serif">phpinfo(); </font></p> <p><font face="Arial, Helvetica, sans-serif">?> </font></p> <p><font face="Arial, Helvetica, sans-serif">컨트롤 D 눌르셔서 저장하시고요. <br> 이런식으로 만든 파일을 웹에서 http://localhost/pbi12.php라고 쳐서 열어보시면 됩니다... </font></p> <p><font face="Arial, Helvetica, sans-serif">콘솔에서 바로 확인하고 싶으면 lynx http://localhost/pbi12.php 하시면 됩니다. <br> 그러면 php의 버젼과 설명이 나옵니다~ <br> 그럼 일단은 완성^^; </font></p> <p><font face="Arial, Helvetica, sans-serif">그리고나서 계정을 주고도 실험을 해봅시다. </font></p> <p><font face="Arial, Helvetica, sans-serif"># adduser pbi12 <br> # passwd 암호 </font></p> <p><font face="Arial, Helvetica, sans-serif"># cd ~pbi12 <br> # mkdir public_html <br> # cd public_html </font></p> <p><font face="Arial, Helvetica, sans-serif"># cat > index.html <br> Hi~ <br> 컨트롤 D로 저장 </font></p> <p><font face="Arial, Helvetica, sans-serif"># chmod 711 /home/pbi12 </font></p> <p><font face="Arial, Helvetica, sans-serif">그러고 나서 lynx http://localhost/~pbi12 라고 치셔서 Hi~! 라고 나오면 자~~알 되는겁니당^^; </font></p> <p> </p> <p></p> <p><b><font face="Arial, Helvetica, sans-serif" size="4" color="#666600">13. 부팅할 때 자동으로 서버 실행되게 설정하기 <a name="13"></a></font></b></p> <p><font face="Arial, Helvetica, sans-serif"># vi /etc/rc.d/rc.local 하셔서 파일의 맨 마지막에 아래의 명령어를 추가하면 됩니다. </font></p> <p><font face="Arial, Helvetica, sans-serif">파일의 맨마지막으로 가기 위해서는 vi에서 $G 를 누르시면 됩니다^^; </font></p> <p><font face="Arial, Helvetica, sans-serif"><br> #mysql start<br> /usr/local/mysql/bin/safe_mysqld --language=korean &</font></p> <p><font face="Arial, Helvetica, sans-serif">#apache start<br> /usr/local/apache/bin/apachectl start &</font></p> <p><font face="Arial, Helvetica, sans-serif">#ping denied<br> echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> 마지막은 핑을 거부하는 옵션입니다. 필요하신분은 적으세요.<br> 라고 추가 하신후에 :wq 나 :x 하셔서 저장하구나시면, 이제부터는 부팅하면서 자동으로 실행이 되어집니다. <br> 부팅시 mysql과 apache 데몬이 자동 시작하는지 확인하기 위해서 <br> 시스템을 재부팅하여 시스템에 데몬이 올라왔는지 확인합니다. </font></p> <p><font face="Arial, Helvetica, sans-serif"># ps -aux | grep apache </font></p> <p><font face="Arial, Helvetica, sans-serif"># ps -aux | grep mysql </font></p> <p> </p> <p></p> <p><font size="4"><b><font face="Arial, Helvetica, sans-serif" color="#666600">14. Zend Optimizer설치 <a name="14"></a></font></b></font></p> <p><font face="Arial, Helvetica, sans-serif">Zend Optimizer는 표준 Zend 런 타임 컴파일러에 의해 생성되는 중간 코드를 조사하고,<br> 더 빠른 실행으로 그것을 최적화했다고 합니다. Zend Optimizer의 tar를 풀고 다음과 같은 작업을 합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> # tar zxvf ZendOptimizer-1.3.3-Linux_glibc21-i386.tar.gz<br> # cd ZendOptimizer-1.3.3-Linux_glibc21-i386<br> # ./install.sh</font></p> <p><font face="Arial, Helvetica, sans-serif">이제 차례대로 질문에 답을 하면 됩니다.<br> (겁먹을 필요 없습니다~ 이쁜 화면에 친절하게 Default 값이 다 우리가 셋팅한 값으로 되어 있어서 엔터만 치시면 됩니다^^)</font></p> <p><font face="Arial, Helvetica, sans-serif">Welcome to the Zend Optimizer 1.3.3 Installation Script!<br> For more information on this script, see the Installation<br> section in the Zend Optimizer User Guide.</font></p> <p><font face="Arial, Helvetica, sans-serif">Specify the location where to install Zend Optimizer</font></p> <p><font face="Arial, Helvetica, sans-serif">/usr/local/Zend</font></p> <p><font face="Arial, Helvetica, sans-serif">Confirm the location of your php.ini file</font></p> <p><font face="Arial, Helvetica, sans-serif">/usr/local/lib</font></p> <p><font face="Arial, Helvetica, sans-serif">Are you using the Apache web server?</font></p> <p><font face="Arial, Helvetica, sans-serif">Yes</font></p> <p><font face="Arial, Helvetica, sans-serif">Specify the location of your Apache root directory</font></p> <p><font face="Arial, Helvetica, sans-serif">/usr/local/apache</font></p> <p><font face="Arial, Helvetica, sans-serif">Install has detected PHP version 4.2.2<br> Does this look correct?<br> Yes</font></p> <p><font face="Arial, Helvetica, sans-serif">Your php.ini is relocated to the /usr/local/Zend/etc directory<br> and symbolic link from the former place /etc/httpd/php.ini is created.<br> The installation completed successfully and your Zend Optimizer<br> is setup for use. </font></p> <p><font face="Arial, Helvetica, sans-serif"><br> You must RESTART your Apache web server for the modifications to take effect</font></p> <p><font face="Arial, Helvetica, sans-serif">설치 완료 메시지 지시대로 아파치를 재시작 해야 합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">잘 설치 되었는지 확인하는 법은 /usr/local/lib/php.ini 파일의 마지막에 </font></p> <p><font face="Arial, Helvetica, sans-serif">[Zend]<br> zend_optimizer.optimization_level=15<br> zend_extension=/usr/local/Zend/lib/ZendOptimizer.so</font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 되어 있으면 잘 된 것입니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"># /usr/local/apache/bin/apachectl restart</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> 마지막으로 잘 되었는지 확인은 아까 만든 pbi12.php 를 다시 확인 하셔서 </font></p> <p><font face="Arial, Helvetica, sans-serif">====================<br> # cat > pbi12.php </font></p> <p><font face="Arial, Helvetica, sans-serif"><? </font></p> <p><font face="Arial, Helvetica, sans-serif">phpinfo(); </font></p> <p><font face="Arial, Helvetica, sans-serif">?> <br> ====================</font></p> <p><font face="Arial, Helvetica, sans-serif">This program makes use of the Zend Scripting Language Engine:<br> Zend Engine v1.2.0, Copyright (c) 1998-2002 Zend Technologies<br> with Zend Optimizer v1.3.1, Copyright (c) 1998-2002, by Zend Technologies</font></p> <p><font face="Arial, Helvetica, sans-serif">이렇게 with Zend Optimizer v1.3.1 이라는 한줄이 더 추가 되었으면 잘 된 것입니다.</font></p> <p> </p> <p></p> <p><b><font face="Arial, Helvetica, sans-serif" color="#666600" size="4">15. 아파치 튜닝<a name="15"></a></font></b></p> <p><font face="Arial, Helvetica, sans-serif">이부분은 트래픽 양이 큰 곳에서 사용하시면 좋습니다.<br> 설정파일에서 참고할 부분들을 적은 것이니, 꼭 이렇게 바꾸실 필요는 없습니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> MaxKeepAliveRequests 100 -> 10000 <br> 웹서버 프로세스가 지속적으로 접속을 유지하면서 처리할 수 있는 요청 개수입니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">KeepAliveTimeout 15 -> 30<br> 서버에 접속시에 웹페이지 객체들의 전송시 새로운 프로세스를 생성하지 않고 지속적으로 접속을 유지하고 담당하며, <br> 이 클라이언트의 요청에 대한 타임아웃에 대한 값입니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">StartServers 5 -> 20<br> MinSpareServers 5 -> 20 <br> MaxSpareServers 10 -> 40<br> 폭주하는 서버일 경우 SpareServer가 많으면 빨리 대처할 수 있습니다.<br> 스탠드얼론 방식일 경우 새로운 접속 요청을 받으면 기존의 Spare Child Process를 포크해 새로운 자식 프로세스를<br> 만들어 내므로 적당히 있어주면 좋습니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">MaxRequestsPerChild 0 -> 1000<br> 웹서버 프로세스가 일정 횟수의 클라이언트 요청을 처리하고 종료되는 수치입니다.</font></p> <p><font face="Arial, Helvetica, sans-serif">※ MaxClients 256 -> 1024<br> 동시에 실행될 수 있는 최대 프로세스 수를 제한 하는 것입니다.<br> 하지만 옵션을 1024로 확장하려면 소스레벨에서 <br> 아파치 설치전에 apache/src/include/httpd.h 파일에서<br> HARD_SERVER_LIMIT 256 으로 된것을 1280 으로 변경한후 컴파일 하여야 사용 가능하다.</font></p> <p></p> <p> </p> <p><font face="Arial, Helvetica, sans-serif" size="4" color="#666600"><b>16. 서버 재시작<a name="16"></a></b></font></p> <p><font face="Arial, Helvetica, sans-serif">여기까지 한후에 잘 되는지 간단한 테스트 해보시고, 서버를 리붓시켜서 서버가 원격에서 리붓했을때에도 <br> 잘되는지도 확인할겸 키보드와 모니터를 제거한후에 리붓을 해주십시요.<br> 서버 관리자들이 주로 하는 실수중에 하나로 작업시에는 잘 되었는데 원격에서 리붓을 했더니 안되버린다는 경우가 <br> 종종 있습니다. 이러한 점을 방지하기 위해서 키보드를 뽑아주시고 리붓을 합니다.<br> # /sbin/shutdown -r now 이나 <br> # /sbin/reboot 으로 하시면 됩니다.<br> 여기서 주의 할점은 CMOS 셋업에서 키보드와 모니터등 특정장치가 없을시엔 부팅이 안되는 설정이 되어 있다면<br> 원격에서 리붓시키면 CMOS 셋업 설정때문에 부팅이 안된다는 것입니다.<br> 만약 리붓을 했는데, 부팅이 안되신다면 CMOS 셋업에서 장치가 없어서 에러로 처리하는 부분을 <br> NO ERROR 로 키보드가 안 꼽아져 있더라도 부팅이 되도록 해주셔야 합니다.</font></p> <p></p> <p> </p> <p><font face="Arial, Helvetica, sans-serif" color="#666600" size="4"><b>17. 보안 관련 소식들<a name="17"></a></b></font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">최근 문제시 되었던 문제들 입니다.<br> 참고 하시길 바랍니다.<br> 이문서에서 설치한 버젼들은 아래 권고문들에서 해결책으로 내놓은 버젼들로 설치를 했습니다.</font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">이 문서는 아파치에 관련하여 생긴 문제점으로 전세계적으로 많이 사용되어 지고 있는 아파치 웹서버에 보안 취약점이 보고되었습니다.<br> 이번취약점은 HTTP 프로토콜의 기능인 'chunked' 엔코딩을 이용하여 잘못된 요청을 할 경우에 발생하는데, <br> 아파치의 모든 버전에 해당되어 질 만큼 이 요청을 처리하는 루틴에 버그를 가지고 있습니다. <br> 이 취약점을 이용하여 원격에서 웹 문서의 수정 및 서비스 거부(Denial Of service) 상태가 가능합니다.</font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">테스트는 아래와 같이 해볼수 있습니다.</font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">먼저 telnet 으로 해당 서버의 80번 포트로 접속합니다. </font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">telnet 자신의아파치주소 80 <br> Escape character is '^]'. 상태에서 </font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">POST /x.html HTTP/1.1 <br> Host: 192.168.0.1 <br> Transfer-Encoding: chunked </font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">80000000 <br> 를 붙여서 보냅니다. </font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">이때 Connection closed by foreign host 와 같은 메시지가 나오면서 바로 <br> 끊기는 경우는 버그에 취약한 버젼입니다. </font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">패치가 된 아파치라면 아래와 같이 나올겁니다. </font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">HTTP/1.1 400 Bad Request<br> Date: Sat, 10 Aug 2002 14:29:54 GMT<br> Server: Apache/1.3.26 (Unix) PHP/4.2.2<br> Connection: close<br> Content-Type: text/html; charset=iso-8859-1</font></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">이 문서에서 설치한 버젼은 패치가 된 1.3.26 버젼입니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> <b><font color="#996600">( 아파치 문제점에 대한 권고문 )</font></b></font></p> <p><font face="Arial, Helvetica, sans-serif"><br> CERT? Advisory CA-2002-17 Apache Web Server Chunk Handling Vulnerability<br> Original release date: June 17, 2002<br> Last revised: August 8, 2002<br> Source: CERT/CC</font></p> <p><font face="Arial, Helvetica, sans-serif">A complete revision history can be found at the end of this file.</font></p> <p></p> <p><font face="Arial, Helvetica, sans-serif">Systems Affected<br> Web servers based on Apache code versions 1.2.2 and above <br> Web servers based on Apache code versions 1.3 through 1.3.24 <br> Web servers based on Apache code versions 2.0 through 2.0.36 </font></p> <p><font face="Arial, Helvetica, sans-serif"><br> Overview<br> There is a remotely exploitable vulnerability in the way that Apache web servers (or other web servers based on their source code) handle data encoded in chunks. This vulnerability is present by default in configurations of Apache web server versions 1.2.2 and above, 1.3 through 1.3.24, and versions 2.0 through 2.0.36. The impact of this vulnerability is dependent upon the software version and the hardware platform the server is running on.</font></p> <p></p> <p><font face="Arial, Helvetica, sans-serif">I. Description<br> Apache is a popular web server that includes support for chunk-encoded data according to the HTTP 1.1 standard as described in RFC2616. There is a vulnerability in the handling of certain chunk-encoded HTTP requests that may allow remote attackers to execute arbitrary code.</font></p> <p><font face="Arial, Helvetica, sans-serif">The Apache Software Foundation has published an advisory describing the details of this vulnerability. This advisory is available on their web site at</font></p> <p><font face="Arial, Helvetica, sans-serif">http://httpd.apache.org/info/security_bulletin_20020617.txt <br> Vulnerability Note VU#944335 includes a list of vendors that have been contacted about this vulnerability.</font></p> <p></p> <p><font face="Arial, Helvetica, sans-serif">II. Impact<br> For Apache versions 1.2.2 through 1.3.24 inclusive, this vulnerability may allow the execution of arbitrary code by remote attackers. Exploits are publicly available that claim to allow the execution of arbitrary code.</font></p> <p><font face="Arial, Helvetica, sans-serif">For Apache versions 2.0 through 2.0.36 inclusive, the condition causing the vulnerability is correctly detected and causes the child process to exit. Depending on a variety of factors, including the threading model supported by the vulnerable system, this may lead to a denial-of-service attack against the Apache web server.</font></p> <p></p> <p><font face="Arial, Helvetica, sans-serif">III. Solution<br> Upgrade to the latest version<br> The Apache Software Foundation has released two new versions of Apache that correct this vulnerability. System administrators can prevent the vulnerability from being exploited by upgrading to Apache httpd version 1.3.26 or 2.0.39.</font></p> <p><font face="Arial, Helvetica, sans-serif">Due to some unexpected problems with version 1.3.25, the CERT/CC has been informed by the Apache Software Foundation that the corrected version of the software is now 1.3.26. Both 1.3.26 and 2.0.39 are available on their web site at</font></p> <p><font face="Arial, Helvetica, sans-serif">http://www.apache.org/dist/httpd/ <br> Apply a patch from your vendor<br> If your vendor has provided a patch to correct this vulnerability, you may want to apply that patch rather than upgrading your version of httpd. The CERT/CC is aware of a patch from ISS that corrects some of the impacts associated with this vulnerability. System administrators are encouraged to ensure that the patch they apply is based on the code by the Apache Software Foundation that also corrects additional impacts described in this advisory.</font></p> <p><font face="Arial, Helvetica, sans-serif">More information about vendor-specific patches can be found in the vendor section of this document. Because the publication of this advisory was unexpectedly accelerated, statements from all of the affected vendors were not available at publication time. As additional information from vendors becomes available, this document will be updated.</font></p> <p></p> <p><font face="Arial, Helvetica, sans-serif" color="#000066">이 문제점은 PHP 버젼 4.2.0 그리고 4.2.1들안에서 나타나는 문제로 침입자가 웹 서버의 특권들을 가지고 자의적 코드를 실행할 수 있습니다. 이 취약성이 웹서버를 조종 하는데 사용될 수 있습니다.<br> PHP는 포스트 요청의 헤더들을 분석하기 위하여 코드를 포함 하게 되고, 이 코드는 multipart/form-data 요청에 의해서 보내진 변수와 파일들 사이에 다른점이 있는지 비교하기위하여 사용됩니다. 이때 파서가 분석을 할때 불 충분한 입력을 조사하고, 이 과정에서 취약성을 유발합니다. <br> 해결방법은 PHP 4.2.0 과 4.2.1 패치를 적용하거나 4.2.2 최신 버젼을 사용하면 됩니다.<br> 이 문서에서는 PHP 4.2.2 를 사용하고 있습니다.</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> <b><font color="#996600">( PHP 문제점에 대한 권고문 )</font></b></font></p> <p><font face="Arial, Helvetica, sans-serif"><br> CERT? Advisory CA-2002-21 Vulnerability in PHP<br> Original release date: July 22, 2002<br> Last revised: Thu Jul 25 09:23:27 EDT 2002<br> Source: CERT/CC</font></p> <p><font face="Arial, Helvetica, sans-serif">A complete revision history can be found at the end of this file.</font></p> <p><font face="Arial, Helvetica, sans-serif"><br> Systems Affected<br> Systems running PHP versions 4.2.0 or 4.2.1 </font></p> <p><font face="Arial, Helvetica, sans-serif"><br> Overview<br> A vulnerability has been discovered in PHP. This vulnerability could be used by a remote attacker to execute arbitrary code or crash PHP and/or the web server. </font></p> <p><font face="Arial, Helvetica, sans-serif"><br> I. Description<br> PHP is a popular scripting language in widespread use. For more information about PHP, see </font></p> <p><font face="Arial, Helvetica, sans-serif">http://www.php.net/manual/en/faq.general.php </font></p> <p></p> <p><font face="Arial, Helvetica, sans-serif">The vulnerability occurs in the portion of PHP code responsible for handling file uploads, specifically multipart/form-data. By sending a specially crafted POST request to the web server, an attacker can corrupt the internal data structures used by PHP. Specifically, an intruder can cause an improperly initialized memory structure to be freed. In most cases, an intruder can use this flaw to crash PHP or the web server. Under some circumstances, an intruder may be able to take advantage of this flaw to execute arbitrary code with the privileges of the web server.</font></p> <p><font face="Arial, Helvetica, sans-serif">You may be aware that freeing memory at inappropriate times in some implementations of malloc and free does not usually result in the execution of arbitrary code. However, because PHP utilizes its own memory management system, the implementation of malloc and free is irrelevant to this problem. </font></p> <p><font face="Arial, Helvetica, sans-serif">Stefan Esser of e-matters GmbH has indicated that intruders cannot execute code on x86 systems. However, we encourage system administrators to apply patches on x86 systems as well to guard against denial-of-service attacks and as-yet-unknown attack techniques that may permit the execution of code on x86 architectures. </font></p> <p><font face="Arial, Helvetica, sans-serif">This vulnerability was discovered by e-matters GmbH and is described in detail in their advisory. The PHP Group has also issued an advisory. A list of vendors contacted by the CERT/CC and their status regarding this vulnerability is available in VU#929115. </font></p> <p><font face="Arial, Helvetica, sans-serif">Although this vulnerability only affects PHP 4.2.0 and 4.2.1, e-matters GmbH has previously identified vulnerabilities in older versions of PHP. If you are running older versions of PHP, we encourage you to review http://security.e-matters.de/advisories/012002.html </font></p> <p></p> <p><font face="Arial, Helvetica, sans-serif">II. Impact<br> A remote attacker can execute arbitrary code on a vulnerable system. An attacker may not be able to execute code on x86 architectures due to the way the stack is structured. However, an attacker can leverage this vulnerability to crash PHP and/or the web server running on an x86 architecture. </font></p> <p><font face="Arial, Helvetica, sans-serif">III. Solution<br> Apply a patch from your vendor<br> Appendix A contains information provided by vendors for this advisory. As vendors report new information to the CERT/CC, we will update this section and note the changes in our revision history. If a particular vendor is not listed below, we have not received their comments. Please contact your vendor directly. </font></p> <p><font face="Arial, Helvetica, sans-serif">Upgrade to the latest version of PHP<br> If a patch is not available from your vendor, upgrade to version 4.2.2. <br> Deny POST requests<br> Until patches or an update can be applied, you may wish to deny POST requests. The following workaround is taken from the PHP Sec
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved