====== APM 구축하기 - 제2판 ======
최신버전의 APM 설치 방법을 담고 있다. 데비안과 우분투 같은 패키지 기반의 배포판에서는 몇 개의 명령어만으로 손쉽게 설치 가능하지만, 여기서는 소스 컴파일 설치를 통해 APM 환경을 구축할 것이다.
참고로 설치환경은 Debian 6.0.6 이며 최신버전이다(2012년 11월 현재).
====== 준비운동 하기 ======
APM 각각 홈페이지에 최신 버전을 다운 받는다. 여기서는 사용할 버전은 다음과 같다.
- mysql-5.5.28.tar.gz
- httpd-2.2.23.tar.gz
- php-5.2.9.tar.gz
- apr-1.4.6.tar.gz
- apr-util-1.5.1.tar.gz
- pcre-8.31.tar.gz
mysql -> apache -> php 의 순으로 설치한다.
====== mysql 설치 ======
설치 경로는 다음과 같다.
| 실행 파일 | /usr/local/program/mysql |
| 데이터 파일 | /usr/local/program/mysql/data |
설치 전에 mysql 에 대한 그룹과 개인 계정을 만든다.
#groupadd mysql
#useradd -M -s /bin/false -g mysql mysql
압축을 풀고 아래와 같이 컴파일 및 설치를 한다.
#cd mysql-5.5.28
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/program/mysql -DMYSQL_DATADIR=/usr/local/program/mysql/data -DDEFAULT_CHARSET=euckr \
-DDEFAULT_COLLATION=euckr_korean_ci -DWITH_EXTRA_CHARSETS=all
#make
#make install
설치가 완료되었으면, db 초기화 및 계정 암호를 지정해야 한다.
#cd /usr/local/program/mysql
#./scripts/mysql_install_db --user=mysql --datadir=/usr/local/program/mysql/data
#./bin/mysqld_safe & // 암호를 지정하기 위해서는 mysql 데몬을 실행해야 한다
#./bin/mysqladmin -u root password abcd // 암호가 abcd 일 때
#./bin/mysqladmin -u root -h fat81 password abcd // 암호가 abcd 일 때
이제 자동 시작을 위한 스크립트와 설정 파일을 만들 차례다.
#cd /usr/local/program/mysql/support-files
#cp my-medium.cnf /etc/my.cnf
my.cnf 파일은 db 가 실행될 때의 환경 옵션들을 지정하고 있다. 시스템 메모리 크기에 따라서 여러가지 환경 파일들을 제공하고 있다.
| 64MB 이하 | my-small.cnf |
| 65MB ~ 256MB | my-medium.cnf |
| 512MB | my-large.cnf |
| 1GB ~ 2GB | my-huge.cnf |
스크립트 파일(/usr/local/program/mysql/support-files/mysql.server)을 열어 아래와 같이 수정한다.
...
basedir=/usr/local/program/mysql # 추가
datadir=/usr/local/program/mysql/data # 추가
...
rc 스크립트에 복사하고, 시작할 때 자동으로 실행되도록 설정한다.
#cp mysql.server /etc/init.d/mysqld
#chkconfig --add mysqld
#chkconfig --list |grep mysql
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
====== httpd 설치 ======
httpd 를 설치하기 위해서는 apr, apr-util, pcre 라고 하는 다소 낯선 프로그램을 설치해야 한다. 참고로 이들은 apache 홈페이지에서 다운 받을 수 있다.
설치방법은 다음과 같다.
#cd apr-1.4.6
#./configure --prefix=/usr/local/program/apr
#make ; make install
#cd apr-util-1.5.1
#./configure --prefix=/usr/local/program/apr-util --with-apr=/usr/local/program/apr
#make ; make install
#cd pcre-8.31
#./configure --prefix=/usr/local/program/pcre
#make ; make install
사전 준비가 끝났다. 이제 httpd 를 컴파일 및 설치하자.
#cd httpd-2.2.23
#./configure --prefix=/usr/local/program/httpd --enable-shared=max --enable-module=so
#make
#make install
부팅 시에 자동으로 실행하기 위해 /etc/rc.local 파일에 다음을 추가한다.
/usr/local/program/httpd/bin/apachectl start
====== php 설치 ======
php 를 설치를 하기전에 필요한 라이브러리를 설치해야 한다.
#apt-get install libxml2-dev libz-dev jpeglib-dev libjpeg-dev libpng-dev
이제 컴파일 및 설치하자.
#cd php-5.2.9
#./configure --prefix=/usr/local/program/php --with-apxs2=/usr/local/program/httpd/bin/apxs --with-mysql=/usr/local/program/mysql \
--with-config-file-path=/usr/local/program/httpd/conf --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib=/usr --enable-mbstring --enable-exif
#make ; make install
php 설정을 위해 php.ini 파일을 /usr/local/program/httpd/conf 아래에 만든다.
#cp php.ini-dist /usr/local/program/httpd/conf/php.ini
웹서버 설정 파일(httpd.conf)에 다음을 추가 한다.
...
DirectoryIndex index.html index.php
...
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
...
DocumentRoot "/usr/local/program/httpd/htdocs/www" // 위키 동기화를 위해 수정
...
====== 추가사항 ======
===== cron 을 이용한 웹 동기화 하기 =====
원격 웹서버(likewind.org)에 수정된 내용을 로컬 웹서버에 동기화 시키면, 인터넷에 굳이 연결되어있지 않아도, 위키를 사용할 수 있다.
동기화를 위해서는 rsync 와 expect 라는 프로그램이 필요하다.
#apt-get install rsync expect rcs
스크립트 파일(web_sync)을 만들고, 이를 시간에 따라 자동으로 실행되도록 cron 에 등록할 것이다.
#!/usr/bin/expect
set timeout -1
log_user 0
spawn rsync -avPz --delete --stats -l -t -e ssh fat81@likewind.org:/home/hosting_users/fat81/ /usr/local/program/httpd/htdocs
expect "password: "
send "1234\n"
log_user 1
expect eof
만들었으면, cron 에 등록한다.
#chmod +x web_sync
#mv web_sync /usr/local/bin
#crontab -e
다음과 같이 작성한다.
*/5 * * * * /usr/local/bin/web_sync
*/1 * * * * /bin/chown -R daemon.daemon /usr/local/program/httpd/htdocs/
참고로 위의 설정은 매 5분마다 web_sync 스크립트를 실행하는 것이다.