웹서버관련정보/리눅스

[강좌] Fedora Core(Linux) 에서 APM설치하기

박디 2007. 6. 14. 22:42

APM설치에 대한 강좌나 팁은 수없이 많이 올라와 있지만 제대로 적용되지 않는 부분도 많고 원본

강좌를 그대로 복사한 글들이 많아 일관성 없이 설치가 더 혼란해 지는 경우가 많다. 예전 아파치

1.x 버전대에서 APM을 레드햇 리눅스에서 설치해본뒤로 한번도 손을 대질 않아서 다 잊어버렸었

는데 이번에 Win32용 아파치 서버에 대한 회의감이 들어 여름에 리눅스로 서버운영체제를 바꿀

계획을 가지고 로컬테스트용으로 APM을 페도라 코어 4와 6에서 설치해봤다. 성공했고 기왕에

설치까지 했으니 최근버전(07.0614기준)의 APM패키지들을 가지고 설치하는 글을 올린다.

이글에서는 APM의 환경설정에 대해서 말하진 않겠다. 글이 너무 길어지기때문에..설치에만 중점을 둔다.

일단 내가 설치한 환경을 간략히 표시한다.

O/S : Fedora core 4,6
System : VMware workstation 6 (120mb ram,8Gb HDD)

(로컬테스트용으로 설치한것이라 설치시에 버벅이는 감이 크다. VMware상에서 설치하고 싶다면

 램할당을 더 크게 해주는것이 좋다.)

준비물 :
Mysql 5.0.41(Source), Apache 2.2.4(Source), PHP 5.2.3(Source), Zend Optimizer(3.2.8)

(위의 링크에서 다운로드 가능 Zend Optimizer는 사이트내에서 회원가입필요. 아무렇게나
 입력해주고 다운로드 받으면 된다. 소스컴파일 설치시 모두 tar.gz로 끝나는 확장자의 파일을
 받으면 된다.)

설치전 확인해야 할것이 있다. RPM패키지로 Mysql이나 Apache서버가 기존에 설치되어있는지

확인해야 되는데 터미널에서 다음과 같이 입력해준다.

rpm -qa mysql (mysql RPM 설치여부 확인)
rpm -qa apache (apache RPM 설치여부 확인)

두가지 모두 없으면 다음과정으로 넘어가고 하나라도 있다면 설치전에 지워준다.

rpm -e mysql (mysql 삭제)
rpm -e apache (apache 삭제)


만약 mysql에 의존성 있는 프로그램이 설치되어 있다면 에러메시지가 뜨면서 삭제가 안될것이다.

이럴경우엔 아래와 같이 yum을 실행해서 지워준다.

yum remove mysql

이렇게 실행하면 의존성 있는 프로그램까지 같이 지워준다. 나의 경우엔 메일서버 프로그램인

Dovecot 이 설치되어있었고 mysql에 의존성이 있어서 yum 으로 remove실행시 둘다 지워졌다.

만일 따로 쓰고있는 의존성 있는 프로그램이 있다면 확인하고 지우길 바란다.

그리고 설치하기전 주의사항은 Mysql->Apache->PHP의 순서로 설치해야한다는것이다.

(1) Mysql 설치

여기서 나는 /usr/local/src 폴더에 받았던 패키지들의 압축을 풀었다.

1.
[root@localhost]# tar xvfz mysql-5.0.41.tar.gz
[root@localhost]# cd mysql-5.0.41
압축이 해제된 mysql-5.0.41로 이동한뒤..
[root@localhost]# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr
[root@localhost]# make; make install

이렇게 입력해주면 설치가 끝난다. 참고로 나는 charset=utf8을 썼다. 제로보드4를 쓸것이라면


euc_kr을 써줘야하겠지만 이는 DB생성시에 지정해 줄수있으니 상관없고 전반적으로 요새나오는

게시판 프로그램들이 utf8을 기준으로 만들어져 나오기때문에 charset을 바꿔서 설치했다. 어느것

을 택하던지 설치자체엔 상관없다. 만약 make와 make install이 모두 끝난뒤에 configure 실행시

설정이 잘못됐다 생각되면 make distclean 명령으로 초기화 시킬수 있다.

2.
[root@localhost]# cd /usr/local/mysql/bin
[root@localhost]# ./mysql_install_db
mysql의 기본 데이터와 test 데이터 생성 명령.

3.
[root@localhost]# groupadd mysql
[root@localhost]# useradd -g mysql -s /bin/false mysql
[root@localhost]# passwd mysql
My SQL을 관리하기 위한 계정을 생성하는 과정이다. 계정명은 mysql이고 비밀번호는 mysql로

생성하라는 명령인데 비밀번호는 추후에 바꿔줄수 있다.


4.
[root@localhost]# cd /usr/local/mysql
[root@localhost]# chown -R mysql.mysql var
Mysql의 DB가 저장되는 var폴더에 권한설정을 해주는 명령이다. DB저장경로는 처음에 configure

실행시 -localstatedir=/설치경로 를 추가하여 변경할수 있으나 기본 경로는 아래와 같이

/usr/local/mysql/var 가 된다.


5.
[root@localhost]# cp
/usr/local/src/mysql-5.0.41/support-files/my-huge.cnf /etc/my.cnf

config 파일 설정부분 support-files 디렉토리에서 my-huge.cnf파일을 복사해서 My SQL 기본

config파일로 쓰게 해뒀다. 몰론 my-medium.cnf 나 my-small.cnf파일을 쓸수도 있으나 나는 항상

큰것만 좋아한다.

[root@localhost]# cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost]# ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S90mysqld
[root@localhost]# ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc5.d/S90mysqld
[root@localhost]# ntsysv

서버 시작시에 자동으로 시작이 되도록 설정해 주는 부분 level 3,5 일경우에 자동으로 시작이된다.

재시작 시키고 싶다면 위의 경로에 있는 mysqld restart 명령을 써주면 된다.

사용자 삽입 이미지
ntsysv명령을 내렸을때 위와같이 mysqld에 체크되어있는지 확인후 안되있다면 체크해주고 tab키를

눌러 확인해준다.

6.
[root@localhost]# /etc/rc.d/init.d/mysqld start (MySQL시작)
[root@localhost]# ps -ef | grep mysql (MySQL데몬 확인)
[root@localhost]# /etc/rc.d/init.d/mysqld stop (MySQL 종료)

Mysql 시작과 종료가 제대로 이뤄지는지 확인해본다. 둘다 정상적으로 이뤄져야 설치가 제대로

된것이다.

[root@localhost]# vi /etc/profile
제일 밑부분에 추가.
#mysql config
PATH="$PATH:/usr/local/mysql/bin"

mysql의 경로를 지정해 준다. vi대신에 Fedora설치시에 텍스트 편집기가 있다면 텍스트편집기로

편집후 저장해도 무방하다. 개인적으로는 vi보단 기본내장 텍스트편집기를 많이 쓴다. 적용후

mysqld start 로 mysql을 시작시켜본다. 오류 메시지가 없다면 성공적으로 설치한것이다.

(2) Apache 설치
[root@localhost]# tar xvfz apache_2.2.4.tar.Z
[root@localhost]# cd apache_2.2.4
[root@localhost]# ./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE --enable-module=so --enable-shared=max
[root@localhost]# make; make install

아파치 설치는 매우쉽다 모든부분이 마찬가지지만 명령줄이 길때는 한줄로 쓰는 방법이 있고 혼란

스러워서 아랫줄에 계속 입력하고 싶다면 한줄이 끝날때 '\' 를 입력해서 다음줄에 이어서 입력

할 수 있다. 아파치 설치는 이렇게 하면 끝이난다. 설정부분은 나중에 다른 강좌에서 설명하겠다.

[root@localhost]# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apachectl
[root@localhost]# ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc3.d/S85httpd
[root@localhost]# ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc5.d/S85httpd

My SQL때와 마찬가지로 Level3,5일경우에 서버가 자동실행되게 하는 명령을 줬다.

[root@localhost]# /etc/rc.d/init.d/apachectl start
아파치를 실행하는 명령 재시작은 restart 중지는 stop을 apachectl 뒤에 붙혀주고 실행하면된다.

모두 실행후 웹브라우저로 http://localhost를 쳤을때 It Works! 라는 문구가 보인다면 성공한것이다.

(3) PHP설치
1.
[root@localhost]# tar xvfz php-5.2.3.tar.gz
[root@localhost]# cd php-5.2.3

[root@localhost]#./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/apache/conf \
--with-mysql=/usr/local/mysql \
--with-track-debug \
--enable-track-vars \
--enable-magic-quotes \
--enable-track-vars=yes \
[root@localhost]# make; make install
[root@localhost]#
cp /usr/local/src/php-4.3.2/php.ini-dist /usr/local/apache/conf/php.ini

위와같이 입력하여 PHP를 설치한다. 만약 아파치 1.x대의 버전을 가지고 설치한다면 물론 다른

패키지들과 연동이 제대로 될진 모르겠지만 어쨋든 --with-apxs2를 --with-apxs로 고쳐서 설치

하면된다.

2.
[root@localhost]# cd /usr/local/apache/modules
[root@localhost]# ls -al

PHP가 잘 설치되었다면 libphp5.so 모듈파일이 보일것이다. 없다면 설치상에 뭔가 문제가 있다는

것이니까 참고한다. 참고로 아파치 1.x 버전에는 libexec에 저장이된다.

3.
[root@localhost]# vi /usr/local/apache/conf/httpd.conf
LoadModule php5_module  modules/libphp5.so
AddType application/x-httpd-php .php .inc
아파치 환경설정파일인 httpd.conf 파일을 열어 Loadmodule 부분밑에 Addtype을 추가해준다.

Type지정이 안되어 PHP파일 로딩 테스트시에 소스그대로 출력되버리는 경우가 생긴다.

4.
[root@localhost]# vi /usr/local/apache/htdocs/index.php
<? phpinfo(); ?>
phpinfo출력 테스트를 해볼것이다. 이렇게 입력 저장한뒤(물론 텍스트편집기 사용가능!) 브라우저로

불러들였을때 아래와 같이 뜨면 APM연동이 모두 잘된상태로 설치가 된것이다. 한가지 덧붙혀서

httpd.conf 파일에서 DirectoryIndex index.html index.htm index.php index.php3 이부분

이 index.html만 추가 되있을텐데 index.php를 위와같이 추가해준다. 그래야 브라우저에서 php파일

의 출력결과를 볼수있다.

사용자 삽입 이미지

(4) Zend Optimizer 설치
APM만 설치해도 별상관없지만 Zend optimizer 나 eAcellator 같은 프로그램을 설치하면 웹서버

로딩속도가 향상된다. Zend Optimizer는 PHP버전에 맞게 설치/업그레이드 해야되며 여기서는

PHP 5.2.3을 지원하는 최신버전인 3.2.8 버전을 설치하였다. 컴파일등을 따로 해줄필요도 없고

아래와 같이 입력해주면 설치화면이 뜬다.

[root@localhost]# tar xvfz
ZendOptimizer-3.2.8.tar.gz
[root@localhost]# cd ZendOptimizer-3.2.8
[root@localhost]# install.sh

처음 실행시 라이센스 동의 화면이 뜨고 어짜피 읽지도 않을꺼니까 'Exit' 눌러서 다음

단계로 넘어간다. 이후에 Zend Optimizer를 설치할 절대경로를 묻는데 나는 아래와

같이 지정하였다.

/usr/local/zend

이다음 단계에서는 php.ini 파일이 있는 경로를 지정해줘야 하는데 이글대로 했을때

php.ini는 /usr/local/apache/conf 에 있다. 여기서 확인을 눌러주면 progress 상태가

나오면서 설치가 완료되면 제대로 완료됐다고 메시지가 뜨고 경로설정이나 APM이 제대로

연동되지 않았다면 오류 메시지가 뜰것이다. Zend Optimizer가 성공적으로 설치됐다면

phpinfo 화면에서 아래와 같은 부분이 추가된 것을 볼수 있다.
사용자 삽입 이미지

위와같이 큰 어려움없이 APM과 ZendOptimizer의 설치를 마쳤다. 위에서 쓴 패키지들과 똑같은

버전을 꼭 사용할 필요는 없지만 APM 각각의 패키지의 버전차이가 많이 나면 연동이 제대로

안되는듯 싶다. 위와 똑같은 방법으로 나는 설치를 제대로 마쳤고 다음에는 설정에 대해서 알아

보도록 하겠다.