최신버전의 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)에 다음을 추가 한다.
... <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> ... 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 스크립트를 실행하는 것이다.