일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- iptime
- 스팀클락
- 크롬
- 메트로타운
- 캐필라노
- 벤쿠버교통
- 파리공원
- Ra Link
- CMD2021
- CMD-2021
- 웹메일
- 브라우징
- G054U-A
- chrome
- 개스타운
- 자출
- 시보레
- 하버파크
- 자전거
- 이스트
- 스카이트레인
- Capilano Suspension Bridge
- 미니스프린트
- 인링구아
- RoundCube
- Inlingua
- 벤쿠버
- RT73
- 2존도서관
- 라운드큐브
- Today
- Total
Second Life
CentOS 5.2 + Apache + MySQL + PHP + JDK + Tomcat + proFTP 설치와 설정 본문
CentOS 5.2 + Apache + MySQL + PHP + JDK + Tomcat + proFTP 설치와 설정
터프키드. 2009. 1. 22. 18:52본 문서는 루나헌터™ (http://blog/naver.com/june8th98) 님의 "[한방설치] 최신 linux(centos5) + DNS + JDK + MySQL + apache + tomcat + php + ftp" 를 토대로 제 시스템에 맞도록 재수정/추가 한 문서입니다. 대부분의 문서형태는 루나헌터™ 님의 형태를 따르고있습니다. |
CentOS 5.2 + APACHE + MySQL + PHP + JDK + Tomcat + proFTP
|
필요한 패키지 및 소스 (wget 또는 web상에서 준비하고 /home/tuffkid 디렉토리에 있다는 전제하에 설명) [1] httpd-2.2.6(apache) http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.0.6.tar.gz/from/http://mysql.byungsoo.net/ [9] PHP(5.2.4) [10] re2c(0.12.1) [11] Mcrypt(2.5.7) wget ftp://ftp.superuser.co.kr/etc/libmcrypt-2.5.7.tar.gz
[12] Zend(3.3.0) wget http://downloads.zend.com/optimizer/3.3.0/ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz |
(서버에 계정 생성) [root@localhost ~]# useradd tuffkid
[root@localhost ~]# yum install yum-fastestmirror (생략...) Added 238 new packages, deleted 0 old in 1.00 seconds
[root@localhost ~]# yum update (생략...) Transaction Summary Total download size: 54 M (생략...) (GPG키를 미리 업데이트 했다면 아래 메세지는 나오지 않을것입니다(아마도...;;)) warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
Complete! (생략...) Install 95 Package(s) Total download size: 100 M
Complete!
(생성된 /home/tuffkid 디렉토리의 권한을 부여한다.) [root@localhost ~]# cd /home
(proftp 설치) [root@localhost tuffkid]# wget ftp://ftp1.at.proftpd.org/ProFTPD/distrib/source/proftpd-1.3.1.tar.gz 100%[===============================================>] 1,858,160 191K/s in 11s 13:51:36 (169 KB/s) - `proftpd-1.3.0a.tar.gz' saved [1858160] [root@localhost tuffkid]# tar zxvf proftpd-1.3.1.tar.gz (proftp 서버의 환경 설정 파일을 일부 변경한다. 변경후 저장. 수동으로 ftp서버 가동) [root@localhost proftpd-1.3.0a]# vi /usr/local/proftpd/etc/proftpd.conf
# Set the user and group under which the server will run. :wq
(부팅시 proftp 활성화) [root@localhost proftpd-1.3.0a]# vi /etc/rc.d/rc.local #!/bin/sh touch /var/lock/subsys/local
:wq
(MySQL 설치 : 파일명이 다르면 파일명과 디렉토리명만 수정하면된다.) [root@localhost libmcrypt-2.5.8]# cd /home/tuffkid/ [root@localhost tuffkid]# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.30-linux-i686-icc-glibc23.tar.gz/from/ftp://mysql.byungsoo.net/pub/mysql/
--12:04:39-- http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.41-linux-i686-icc-glibc23.tar.gz/from/http://mysql.byungsoo.net/ [root@localhost tuffkid]# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.30-linux-i686-icc-glibc23.tar.gz/from/ftp://mysql.byungsoo.net/pub/mysql/ 100%[=========================================================================================================================================>] 118,404,943 554K/s in 3m 12s 12:31:27 (603 KB/s) - `mysql-5.1.30-linux-i686-icc-glibc23.tar.gz' saved [118404943]
[root@localhost tuffkid]# mv mysql-5.1.30-linux-i686-icc-glibc23.tar.gz /usr/local/. [root@localhost local]# groupadd mysql [root@localhost mysql]# chown -R root . [root@localhost mysql]# bin/mysqld_safe --user=mysql &
(MySQL도 부팅시 자동 가동되도록 설정한다.) [root@localhost local]# cd /usr/local/mysql/support-files/[root@localhost support-files]# cp ./mysql.server /etc/init.d [root@localhost support-files]# ln -s /etc/init.d/mysql.server /etc/rc3.d/S99mysql [root@localhost support-files]# ln -s /etc/init.d/mysql.server /etc/rc0.d/K01mysql
(MySQL 환경파일을 설정한다. 한글 UTF-8 환경으로 설정. 수정은 항상 파일 끝부터 라인번호 혼동 우려될까봐 ^^) [root@localhost support-files]# cp ./my-medium.cnf /etc/my.cnf
[mysql] "/etc/my.cnf" 164L, 5187C written
(JDK를 설치한다.) [root@localhost tuffkid]# wget http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u11-linux-i586-rpm.bin?BundledLineItemUUID=hRVIBe.md4kAAAEeX4RX3PJJ&OrderID=0sxIBe.mHI8AAAEeR4RX3PJJ&ProductID=abtIBe.ovJUAAAEdeDBGb7Et&FileName=/jdk-6u11-linux-i586-rpm.bin [root@localhost tuffkid]# mv http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u11-linux-i586-rpm.bin?BundledLineItemUUID=hRVIBe.md4kAAAEeX4RX3PJJ&OrderID=0sxIBe.mHI8AAAEeR4RX3PJJ&ProductID=abtIBe.ovJUAAAEdeDBGb7Et&FileName=/jdk-6u11-linux-i586-rpm.bin jdk-6u11-linux-i586-rpm.bin [root@localhost tuffkid]# chmod a+x jdk-6u11-linux-i586-rpm.bin [root@localhost tuffkid]# ./jdk-6u11-linux-i586-rpm.bin Do you agree to the above license terms? [yes or no]
done. [root@localhost tuffkid]# vi /etc/profile # /etc/profile# System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc LD_LIBRARY_PATH=/usr/local/lib:/usr/lib export LD_LIBRARY_PATH JAVA_HOME="/usr/java/jdk1.6.0_11" export JAVA_HOME export CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin pathmunge () { if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then if [ "$2" = "after" ] ; then PATH=$PATH:$1 :wq [root@localhost tuffkid]# source /etc/profile [root@localhost tuffkid]# java -version
(mysql-connector-java-5.1.7.tar.gz 설치) [root@localhost tuffkid]# wget ftp://ftp.eenet.ee/pub/FreeBSD/distfiles/mysql-connector-java-5.1.7.tar.gz 100%[=========================================================================================================================================>] 8,640,154 598K/s in 17s 13:46:24 (508 KB/s) - `mysql-connector-java-5.1.7.tar.gz' saved [8640154] [root@localhost tuffkid]# tar zxvf mysql-connector-java-5.1.7.tar.gz [root@localhost tuffkid]# cd mysql-connector-java-5.1.7 (apache를 설치한다. 주의:아래 ./configure 명령어는 두줄이 한 라인임. 한꺼번에 복사할것) [root@localhost tuffkid]# cd /home/tuffkid [root@localhost tuffkid]# wget http://ftp.kaist.ac.kr/pub/Apache/httpd/httpd-2.2.11.tar.gz [root@localhost tuffkid]# tar zxvf httpd-2.2.11.tar.gz [root@localhost tuffkid]# cd httpd-2.2.11 [root@localhost httpd-2.2.6]# make [root@localhost httpd-2.2.6]# make install [root@localhost httpd-2.2.6]# echo "/usr/local/apache2/lib" >> /etc/ld.so.conf
(apache환경 파일을 수정 한다. 역시 파일의 끝에서부터 수정. 라인번호 혼동 우려 해서) [root@localhost bin]# vi /usr/local/apache2/conf/httpd.conf
<IfModule dir_module> <IfModule mod_header.c> Header add P3P "CP='CAO PSA CONi OTR OUR DEM ONL'" </IfModule> --------------------------------------------------------------------------------------- #User daemon (114라인 두줄을 # 처리하고 아래 세줄 추가) #Group daemon User nobody Group nobody DefaultLanguage UTF-8 "/usr/local/apache/conf/httpd.conf" 460L, 15671C written [root@localhost bin]# [root@localhost home]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf # NameVirtualHost *:80 #tuffkid.net
(홈페이지가 위치할 곳에 권한을 줄것, httpd.conf에서 설정한 VirtualHost의 Web Directory 모두를 생성(생성하지 않으면 apache 기동시 ERROR 발생) [root@localhost home]# cd /home/tuffkid [root@localhost tuffkid]# mkdir www [root@localhost tuffkid]# chmod -R 707 www/ [root@localhost tuffkid]# cd /usr/sbin [root@localhost sbin]# mv apachectl back_apachectl
(conf 파일 검사) [root@localhost tuffkid]# cd /usr/local/apache2/bin/
(유저 생성시 해당 디렉토리 자동생성하기.. index.html파일같은것을 넣어두면 해당파일도 같이 생성된다.) [root@localhost bin]# cd /etc/skel/
(tomcat을 설치하고 환경파일 수정) [root@localhost local]# cd /home/tuffkid/ [root@localhost skel]# cd /usr/local [root@localhost local]# mv /home/tuffkid/apache-tomcat-6.0.18.tar.gz . [root@localhost local]# ln -s apache-tomcat-6.0.18 tomcat
# /etc/profile JAVA_HOME="/usr/java/jdk1.6.0_11"
(apr과 jni-native를 설치한다. *주의 : ./configure 라인은 두줄이므로 한번에 복사) [root@localhost tuffkid]# wget http://archive.apache.org/dist/apr/apr-1.3.3.tar.gz [root@localhost tuffkid]# cd /usr/local [root@localhost local]# cd apr-1.3.3 [root@localhost apr-1.3.3]# cd /usr/local [root@localhost local]# tar zxvf tomcat-native-1.1.15-src.tar.gz [root@localhost local]# cd /usr/local/tomcat-native-1.1.15-src/jni/native/ (apr과 jni-native를 설치후 path 걸기) [root@localhost native]# vi /etc/ld.so.conf include ld.so.conf.d/*.conf
:wq
(apr의 파일을 jdk에 귀속시켜 준다.) [root@localhost native]# /sbin/ldconfig
(jk2를 설치한다) [root@localhost i386]# cd /usr/local/ [root@localhost i386]# wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk2/jakarta-tomcat-connectors-jk2-src-current.tar.gz [root@localhost local]# tar zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz [root@localhost local]# cd /usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/ [root@localhost native2]# ./configure --with-apxs2=/usr/local/apache2/bin/apxs src/jk/build/jk2/apache2/mod_jk2.so /usr/local/apache2/modules/
(tomcat 환경 만들기. 아래 파일 생성) [root@localhost conf]# cd /usr/local/tomcat/conf/ [root@localhost conf]# vi jk2.properties handler.list=apr,channelSocket,request channelSocket.port=8009 shm.file=/usr/local/apache2/logs/jk2.shm apr.jniModeSo=inprocess
:wq
(apache 에서 tomcat 연결하는 환경을 만든다. 아래 파일을 생성한다.) [root@localhost conf]# cd /usr/local/apache2/conf/ [root@localhost conf]# vi workers2.properties
[shm] file=/usr/local/apache2/logs/shm.file size=1048576 [channel.socket:localhost:8009] port=8009 host=127.0.0.1 [ajp13:localhost:8009] channel=channel.socket:localhost:8009 [status:status] [uri:/jsp-examples/*] worker=ajp13:localhost:8009 [uri:/servlets-examples/*] worker=ajp13:localhost:8009 [uri:/servlet/*] worker=ajp13:localhost:8009 [uri:/tomcat-docs/*] worker=ajp13:localhost:8009 [uri:/*.jsp] worker=ajp13:localhost:8009 [uri:/status/*] worker=status:status
:wq
(tomcat의 server.xml 파일을 수정) [root@ns conf]# cd /usr/local/tomcat/conf (수정시 라인혼동 우려하여 아랫줄부터 위로 수정) (369라인에 아래의 노란색 부분 추가한다.) </Host> <!-- tuffkid.net --> <Host name="tuffkid.net"> <Context path="" docBase="/home/tuffkid/www" reloadable="true"/> <Alias>www.tuffkid.net</Alias> </Host>
</Engine>
:wq
(tomcat의 web.xml 파일을 수정해 준다.) [root@localhost conf]# cd /usr/local/tomcat/conf/ <servlet> </servlet>
(아파치 환경 파일 수정) [root@localhost conf]# cd /usr/local/apache2/conf/
#DocumentRoot "/usr/local/apache2/htdocs" (153라인 #표시, 아래 라인 추가) :wq
(tomcat 부팅시 자동실행 만들기) [root@localhost conf]# nano /etc/rc.d/tomcat source /etc/profile # See how we were called. exit 0 [root@localhost conf]# ln -s /etc/rc.d/tomcat /etc/rc.d/rc3.d/S90tomcat
(apache 리부팅시 자동 실행 만들기) [root@localhost conf]# vi /etc/rc.d/rc.local
#!/bin/sh
(SELINUX 비활성화) [root@localhost conf]# vi /etc/sysconfig/selinux :wq
(리부팅 권장) [root@localhost conf]# shutdown -r now
(라이브러리 설치) [root@localhost tuffkid]# yum -y install zlib zlib-devel freetype freetype-devel freetype-utils gd gd-devel libjpeg libjpeg-devel libpng libpng-devel curl curl-devel openssl flex gcc gcc-c++ [root@localhost tuffkid]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz [root@localhost tuffkid]# tar zxvf libiconv-1.9.2.tar.gz [root@localhost tuffkid]# cd libiconv-1.9.2 [root@localhost libiconv-1.9.2]# make [root@localhost libiconv-1.9.2]# make install [root@localhost tuffkid]# yum install *gd* *libxml2* Install 25 Package(s) Total download size: 17 M [root@localhost tuffkid]# yum install *libtool-ltdl-devel* [root@localhost tuffkid]# yum install *mhash*
(mcrypt 설치) [root@localhost proftpd-1.3.0a]# cd /home/tuffkid/ [root@localhost tuffkid]# wget http://heanet.dl.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz [root@localhost tuffkid]# tar zxvf libmcrypt-2.5.8.tar.gz [root@localhost tuffkid]# cd libmcrypt-2.5.8 (생략...) config.status: executing depfiles commands [root@localhost libmcrypt-2.5.8]# make (ruby on rails 설치) [root@localhost tuffkid]# cd /home/tuffkid [root@localhost tuffkid]# yum install *ruby* [root@localhost tuffkid]# wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz [root@localhost tuffkid]# tar zxvf rubygems-0.9.4.tgz [root@localhost tuffkid]# cd rubygems-0.9.4[root@localhost rubygems-0.9.4]# ruby ./setup.rb [root@localhost rubygems-0.9.4]# sudo gem install rails --include-dependencies Select which gem to install for your platform (i386-linux) [root@localhost rubygems-0.9.4]# sudo gem install capistrano --include-dependencies [root@localhost rubygems-0.9.4]# sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql Select which gem to install for your platform (i386-linux)
(PHP 설치) [root@localhost tuffkid]# wget http://kr2.php.net/get/php-5.2.8.tar.gz/from/this/mirror [root@localhost tuffkid]# wget http://downloads.sourceforge.net/re2c/re2c-0.12.1.tar.gz [root@localhost tuffkid]# tar zxvf re2c-0.12.1.tar.gz [root@localhost tuffkid]# cd re2c-0.12.1 [root@localhost re2c-0.12.1]# ./configure [root@localhost re2c-0.12.1]# make [root@localhost re2c-0.12.1]# rm -f scanners.cc [root@localhost re2c-0.12.1]# make install [root@localhost re2c-0.12.1]# cd /home/tuffkid/ [root@localhost tuffkid]# tar zxvf php-5.2.8.tar.gz [root@localhost tuffkid]# cd php-5.2.8 [root@localhost php-5.2.4]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-zlib-dir=/usr/lib --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-xpm-dir=/usr/lib --with-freetype-dir=/usr/lib --enable-track-vars=yes --with-mod-charset --with-language=korean --with-charset=UTF-8 --disable-debug --without-sqlite --enable-mbstring --with-mcrypt --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mhash --with-iconv=/usr/local [root@localhost php-5.2.8]# make //5~10분 대기 [root@localhost php-5.2.8]# make install [PEAR] Console_Getopt - installed: 1.2.2
(PHP 환경 설정) [root@localhost php-5.2.8]# cp php.ini-dist /etc/php.ini [root@localhost php-5.2.8]# vi /usr/local/apache2/conf/httpd.conf
(446라인 주석 제거 : 제거 안하면 apache2/htdoc로 연결됨) # Vitual hosts # Include conf/extra/httpd-vhosts.conf Include conf/extra/httpd-vhosts.conf
AddType application/x-compress .Z AddType application/x-gzip .gz .tgz (362라인 아래에 두줄 추가) AddType application/x-httpd-php .php .php4 .php3 .html .htm .phtml .ph .php5 AddType application/x-httpd-php-source .phps --------------------------------------------------------------------------------------- <IfModule dir_module> DirectoryIndex index.html index.php index.phtml (220라인 추가) </IfModule> --------------------------------------------------------------------------------------- <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow # Deny from all (172라인 # 마크 하고 아래에 추가) Allow from all </Directory>
:wq
[root@localhost php-5.2.4]#
(Zend 설치) [root@localhost php-5.2.4]# cd /home/tuffkid [root@localhost tuffkid]# wget http://downloads.zend.com/optimizer/3.3.0/ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz [root@localhost tuffkid]# tar xvzf ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz [root@localhost tuffkid]# cd ZendOptimizer-3.3.0-linux-glibc21-i386 [root@localhost ZendOptimizer-3.3.0-linux-glibc21-i386]# ./install.sh (메뉴창이 나오면서 선택형 질문이 나온다. 각 PATH 잘 확인하고 진행을 시킨다.) --------------------------------------------------------------------------------------- (완료 되었으면 php환경파일을 열어서 최하단에 다음과 같이 Zend관련 환경이 자동 설정 되었는지 확인하고 이상 없으면 정상적으로 설치됨) [root@localhost ZendOptimizer-3.2.8-linux-glibc21-i386]# vi /etc/php.ini ; Local Variables: ; tab-width: 4 ; End:
[Zend] zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.2.8 zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.2.8 zend_optimizer.version=3.2.8 zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so
(RoR을 Apache와 연동)
[root@localhost extra]# cd /usr/local/apache2/conf/extra/
(맨 하단에 추가) RewriteEngine On <Directory /home/ossin/www>
:wq
(설치완료후 방화벽 세팅:설치완료후에 사설아이피로도 접속이 안될경우(web,ftp))
[root@localhost tuffkid]# iptables -nL Chain FORWARD (policy ACCEPT) Chain OUTPUT (policy ACCEPT) Chain RH-Firewall-1-INPUT (2 references) (위와 같이 나올경우 기본적으로 22번(ssh)포트만 허용하고 있다. 아래와 같이 허용한다) ---------------------------------------------------------------------------------- [root@localhost ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT [root@localhost ~]# /etc/rc.d/init.d/iptables save (이제 정상적으로 웹과 ftp에 접속할 수 있다.) 만약 iptables이 정상적으로 작동안하면 lokkit 에서 추가 해줌
MYSQL패스 설정 [root@localhost www]# vi /etc/profile
# /etc/profile # System wide environment and startup programs, for login setup
JAVA_HOME="/usr/java/jdk1.6.0_02"
export JAVA_HOME APACHE2_HOME CATALINA_HOME export CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/common/lib/servlet-api.jar PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$APACHE2_HOME/bin:$MYSQL_HOME/bin
:wq
MYSQL패스 루트 비밀번호 설정 [root@localhost ZendOptimizer-3.2.8-linux-glibc21-i386]# cd /usr/local/mysql/bin/
--------------------------------------------------------------------------------------------------------------------------------------- !!(아까 없었던 /usr/sbin/apachectl 이 언제 생겼는지 아파치 실행시 중복실행되는듯?) [root@localhost www]# cd /usr/sbin/ [root@localhost sbin]# mv apachectl apachectl_back 실행이고 뭐고 뒤도안돌아보고 재부팅
추가사항)) 재부팅후 웹에서 접속하기 위해서 공유기 설정 해줘야한다. 80포트 21포트 22포트 열어주기 find / -name proftpd.conf 찾아서 DefaultRoot 를 ~ 로 해줌 (그래도 안된다.. 이건 모르겠네) proftpd 데몬은 start, stop 파라메터를 먹지 않는다. 그냥 /usr/local/proftpd/sbin/proftpd 하면 실행됨 공유기 세팅시 NAT설정 - 내부서버 설정에서 아이피만 부여해준다. |