====== 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 스크립트를 실행하는 것이다.