작성자 : 기술지원부 김 삼 수 kiss@nextline.net
APM 연동설치
APM 이란? 리눅스의 APM(APACHE + PHP + MYSQL)기반의 웹 서비스를 이르는 말입니다.
필요사항 APM 연동설치를 위해서는 APACHE, PHP, MYSQL, ZEND, GD 외 라이브러리가 필요 합니다.
(1) 다운로드
① APACHE를 다운로드 합니다. http://httpd.apache.org wget은 웹에서 자동적으로 파일을 받아오는데 사용되는 유틸리티이며 HTTP, HTTPS, FTP 프로토콜을 지원합니다.
리눅스 쉘 명령어 [root@nextline ~]# wget http://mirror.apache.or.kr/httpd/apache_1.3.37.tar.gz
② PHP를 다운로드 합니다. http://www.php.net
리눅스 쉘 명령어 [root@nextline /]# wget http://snaps.php.net/php4-STABLE-200701010530.tar.gz
③ MYSQL를 다운로드 합니다. http://www.mysql.com ftp://mysql.byungsoo.net/pub/mysql/Downloads/MySQL-4.1/
리눅스 쉘 명령어 [root@nextline /]# wget ftp://mysql.byungsoo.net/pub/mysql/Downloads/MySQL-4.1/mysql-4.1.20.tar.gz
④ ZEND Optimizer를 다운로드합니다. http://www.zend.com http://downloads.zend.com/optimizer/
리눅스 쉘 명령어 [root@nextline /]# wget http://downloads.zend.com/optimizer/2.6.0/ZendOptimizer-2.6.0-linux-glibc21-i386.tar.gz
⑤ GD 동적이미지 생성 ANSI C라이브러리 입니다. http://www.boutell.com/gd [root@nextline /]# wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
⑥ 파일확인 다운로드 된 파일을 확인합니다.
⑦ 라이브러리 다운로드
OS 버전 별 rpm 패키지를 다운로드 합니다. CentOS http://mirror.secuidc.com/centos
Fedora Core http://download.fedoralegacy.org
그 외 버전 rpm find 사이트 http://fr.rpmfind.net/linux/
JPEG 압축/해제 라이브러리 소프트웨어 입니다. libjpeg-devel-6b-31.1.i386.rpm
PNG포멧의 이미지파일을 사용하기 위한 포터블 네트워크 그래픽 라이브러리 입니다. libpng-devel-1.0.12-2.i386.rpm
C++ 라이브러리 입니다. compat-libstdc++-7.3-2.96.126.i386.rpm
메일박스을 액세스 하기 위한 일반적인 API로서 PHP에 의해 내부에 사용됩니다. libc-client-2002e-5.i386.rpm
IMAP 라이브러리을 이용할 프로그램을 위한 개발 도구입니다. libc-client-devel-2002e-5.i386.rpm
⑧ 라이브러리 확인
위 라이브러리가 설치되어 있는지 확인합니다.
rpm 조회옵션 -q : 패키지가 설치되어 있는지 질의하며 이 옵션을 단독으로 사용하면 패키지 이름과 버젼만 표시됩니다. -qa : 현재 설치된 모든 패키지 목록을 찾는데 사용합니다. -qi : 현재 설치된 패키지의 간략한 정보를 출력합니다. -ql : 현재 설치된 패키지의 내용을 보여주며 어떤 파일이 어디에 설치되어 있는지 확인할 때 사용합니다. -qa, -qi, -ql 옵션은 보통 grep명령과 같이 사용됩니다.
특정 rpm패키지의 설치여부 확인하기 사용형식 : rpm –qa | grep 확인하고자 하는 패키지 이름문자열 “|” 파이프 : 앞의 rpm –qa한 결과를 그대로 grep에게 넘겨주는 겁니다. grep는 어떤 패턴에 맞는 것을 뽑아내는 역할을 주로 하는데 앞에서 넘어온 rpm패키지 리스트 중에서 패키지 이름문자열에 해당하는 것만 뽑아내게 됩니다.
리눅스 쉘 명령어 [root@nextline ~]# rpm –qa | grep libjpeg-devel-6b [root@nextline ~]# rpm –qa | grep libpng-devel [root@nextline ~]# rpm –qa | compat-libstdc++ [root@nextline ~]# rpm –qa | grep libc-client-2002e [root@nextline ~]# rpm –qa | grep libc-client-devel-2002e
⑨ 라이브러리 설치 위 라이브러리가 설치되어 있지 않을 시 버전 별 ftp 사이트에 방문하여 다운로드 한 후 해당 rpm 패키지를 설치합니다.
rpm 패키지 설치 ex) libc-client-devel-2002e-5.i386.rpm
rpm패키지 설치옵션 >rpm -U 옵션 : 이전버젼이 설치되어 있으면 업그레이드를 하며, 설치되어 있지 않으면 새롭게 설치합니다. 이전버젼이 설치되어 있을 경우에 환경설정파일을 제외하고 모두 새롭게 설치하게 되며 설치시에 이옵션을 사용하도록 합니다. rpm -v 옵션 : 설치 중 메시지를 보여줍니다. rpm -h 옵션 : 진행과정을 '#'으로 표시합니다. (--hash) rpm 명령어 사용법 rpm [옵션] 패키지명
리눅스 쉘 명령어 [root@nextline ~]# rpm –Uvh libc-client-devel-2002e-5.i386.rpm
(2) 압축해제
라이브러리 설치가 완료되었으면 apm연동 설치를 위해 다운로드한 파일의 압축을 해제 합니다.
tar 명령어 옵션 tar 명령어는 파일을 묶거나 풀 때 사용되는 리눅스 명령어 입니다. c : tar 파일을 생성할 때(여러 개의 파일을 하나의 파일로 묶을 때) v : 묶을 때나 풀어줄 때 파일들의 내용을 자세하게 보려고 할 때. z : gzip과 관련하여 압축이나 해제를 한꺼번에 하려고 할 때 사용. x : 주어진 이름의 파일에 대하여 추출 사용법 : tar [옵션] 파일명
① 다운로드 한 모든 파일의 압축을 해제 합니다.
리눅스 쉘 명령어 [root@nextline ~]# tar zxvf mysql-4.1.20.tar.gz [root@nextline ~]# tar zxvf php4-STABLE-200701010530.tar.gz [root@nextline ~]# tar zxvf gd-2.0.33.tar.gz [root@nextline ~]# tar zxvf apache_1.3.37.tar.gz [root@nextline ~]# tar zxvf ZendOptimizer-2.6.0-linux-glibc21-i386.tar.gz Mysql-4.1.20.tar.gz 압축해제 화면입니다.
② 압축해제 파일확인
(3) Mysql 설치
리눅스 쉘 명령어
① 압축해제 한 mysql-4.1.20디렉토리로 이동합니다. [root@nextline ~]# cd mysql-4.1.20
컴파일 옵션 --prefix=/usr/local/mysql : 설치할 경로를 지정합니다. --with-charset=euckr : 한글지원을 하기 위한 옵션입니다. 주의하실 것은 4.1.x 이후 버전 부터는 euckr로 지정하며, 이전버전에서는 euc_kr로 지정합니다.
② 컴파일 환경설정 [root@nextline mysql-4.1.20]# ./configure -–prefix=/usr/local/mysql –with-charset=euckr
③ 컴파일을 하기 위하여 make를 실행합니다. [root@nextline mysql-4.1.20]# make
④ /usr/local/mysql 디렉토리내에 mysql 데이터베이스 파일들을 실제 생성하기 위하여make install를 실행합니다. [root@nextline mysql-4.1.20]# make install
⑤ mysql 데이터베이스의 데이터 디렉토리을 생성하여 위하여 mysql_install_db를 실행합니다. [root@nextline mysql-4.1.20]#/usr/local/mysql/bin/mysql_install_db
⑥ mysql 계정 생성 및 mysql 디렉토리의 소유권과 그룹을 mysql로 지정합니다. [root@nextline mysql-4.1.20]#usradd –M –s /sbin/nologin mysql; passwd mysql New UNIX password : [mysql 패스워드를 지정합니다] Retype new UNIX password : [mysql 패스워드를 재 입력합니다]
Chown : 리눅스의 소유권 변경 명령어 입니다. -R : 하위 디렉토리까지 모두 적용합니다. [root@nextline mysql-4.1.20]#chown –R mysql.mysql /usr/local/mysql
⑦ mysql를 백그라운드로 구동합니다. [root@nextline mysql-4.1.20]#/usr/local/mysql/bin/mysqld_safe & 패스워드를 위와 동일하게 설정합니다. [root@nextline mysql-4.1.20]#/usr/local/mysql/bin/mysqladmin –u root password ‘xxxxxx’
⑧ mysql 접속테스트 [root@nextline mysql-4.1.20]#mysql –u root –p 접속이 정상적으로 이루어지며 mysql 설치가 완료된 화면입니다.
(4) Apache 설치
① 압축해제 한 apache_1.3.37 디렉토리로 이동합니다. [root@nextline ~]# cd apache_1.3.37
컴파일 옵션 --prefix=/usr/local/apache : apache설치될 디렉토리 경로를 지정합니다. DSO방식으로 설치하기 위한 옵션입니다. --enable-rule=SHARED_CORE –enable-shared=max –enable-module=so
② 컴파일을 하기 위하여 환경 설정을 합니다. [root@nextline apache_1.3.37]# ./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE --enable-shared=max --enable-module=so
③ 컴파일을 하기 위하여 make를 실행합니다. [root@nextline apache_1.3.37]# make
④ 실제 apache 설치를 위하여 make install를 실행합니다. [root@nextline apache_1.3.37]# make install
(5) GD 설치
① 압축해제 한 gd-2.0.33 디렉토리로 이동합니다. [root@nextline ~]#cd gd-2.0.33
② 컴파일을 하기 위한 환경설정을 합니다. 컴파일 옵션 --prefix : 프로그램이 설치될 위치를 절대경로로 지정할 때 사용하는 옵션입니다. [root@nextline gd-2.0.33]# ./configure -–prefix=/usr/local/gd2
③ 환경설정 과정 중 png, jpeg, freetype, fontconfig, xpm, pthreads 정상 인식되는지 확인합니다. [yes]외에 [no]문구가 출력되면 해당 라이브러리를 설치한 후 환경설정을 다시 합니다.
④ 컴파일을 하기 위하여 make를 실행합니다. [root@nextline gd-2.0.33]# make
⑤ gd를 실제 설치하기 위하여 make install를 실행합니다. [root@nextline gd-2.0.33]# make install
(6) PHP 설치
① 압축해제 한 php4-0STABLE-200701010530 디렉토리로 이동합니다. [root@nextline ~]#cd php4-0STABLE-200701010530 [컴파일 옵션]
--prefix=/usr/local/php php 설치경로를 지정합니다.
--with-apxs=/usr/local/apache/bin/apxs 공유된 apache 모듈을 연동하기 위한 옵션입니다.
--with-config-file-path=/usr/local/lib php설정파일 php.ini파일이 존재할 위치를 지정합니다.
--with-mysql=/usr/local/mysql Mysql과 연동하기 위한 옵션입니다.
--with-gd=/usr/local/gd2 php에서 gd라이브러리관련 함수를 사용하여 gd를 지원하기 위한 옵션입니다.
--enable-gd-native-ttf GD 라이브러리에서 FreeType를 함하는 옵션입니다. –-with-freetype-dir=/usr freetype2를 지원하기 위한 옵션입니다.
--with-zlib 데이터압축 라이브러리로서 php에서 zlib을 지원하기 위한 옵션입니다.
--with-iconv 인코딩 변환프로그램으로 iconv를 지원하기 위한 옵션입니다.
--with-imap pop 과 함께 메일수신데몬으로 사용되는 서비스로서 imap를 지원하기 위한 옵션입니다.
--with-kerberos Kerberos는 클라이언트 서버 애플리케이션의 입증을 제공하기 위하여 상칭적인 암호법을 이용하는 네트워크 인증 프로토콜로서 kerberos를 지원하기 위한 옵션입니다.
--enable-mbstring multi-byte문자를 지원하기 위한 옵션으로 많은 언어를 표현하기 위하여 이용되며, php에서 mbstring를 지원하기 위한 옵션입니다.
--enable-track-vars HTTP_GET_VARS, HTTP_POST_VARS, HTTP_COOKIE_VARS 배열에 들어있는 GET / POST / cookie 변수들이 어디로부터 왔는지 기억하게 만듭니다. 이 옵션은 단지 Default 값 을 정하는 것뿐이며, 후에 configuration file의 track_vars 지시자에 의해 Enable/Disable 할 수 있습니다.
--enable-ftp php에서 ftp관련 함수를 지원하기 위한 옵션입니다.
--enable-debug Zend Optimizer를 사용하기 위해서는 debugging을 사용하지 않습니다.
[그외 옵션]
--enable-sockets 소켓(socket) 파일을 사용하기 위한 옵션입니다.
--with-language-korean 한국어를 사용하기 위한 옵션입니다.
--enable-dba=shared DBA를 동적으로 적재할 수 있는 공유 모듈 형태로 만드는 옵션입니다.
--enable-gdbm[=DIR] GDBM 지원을 포함하는 옵션입니다.
--enable-memory-limit php에서 메모리 제한 기능을 지원하는 옵션입니다.
② 컴파일을 하기 위하여 환경설정을 합니다. [root@nextline php4-0STABLE-200701010530]# './configure' '--prefix=/usr/local/php' '--with-apxs=/usr/local/apache/bin/apxs' '--with-config-file-path=/usr/local/lib' '--with-mysql=/usr/local/mysql' '--with-gd=/usr/local/gd2' '--enable-gd-native-ttf' '--with-freetype-dir=/usr' '--with-zlib' '--with-iconv' '--with-imap' '--with-imap-ssl' '--with-kerberos' '--enable-mbstring' '--enable-track-vars' '--enable-ftp' '--enable-debug'
③ 컴파일을 하기 위하여 make를 실행합니다. [root@nextline php4-0STABLE-200701010530]#make
④ php를 실제 설치하기 위하여 make install를 실행합니다. [root@nextline php4-0STABLE-200701010530]#make install
⑤ php설정 파일을 복사 합니다. [root@nextline php4-STABLE-200701010530]# cp php.ini-dist /usr/local/lib/php.ini
[vi 에디터 사용법]
사용형식 : vi [옵션] [생성할 파일명/편집할 파일명] vi 에디터는 입력모드, 명령모드, 실행모드로 구분됩니다.
입력모드 : vi 편집화면에서 문자를 입력할 수 있는 모드로서 입력모드로 진입하기 위해서는 i, a, o, I, A, O, R등이 있습니다. 즉 초기 vi 편집기 모드는 명령어 모드로 진입을 하기때문에 문자를 입력하기 전에 앞의 단축키중 하나를 먼저 입력해야 원하는 문자를 입력할 수 있습니다.
명령모드 : 커서이동/문자삭제/문자(열)교체/문자열검색 등을 할수 있는 모드로서 입력모드에서 편집이 완료되면 Esc키를 눌러 명령모드로 진입하면 됩니다.
실행모드 : 특별한 명령어를 실행하는 모드로서 명령어모드에서 ":"(콜론)를 누르면 vi 화면 하단 좌측에 vi 특수명령어를 입력할 수 있습니다.
실행모드의 일반적으로 쓰이는 특수 명령어 q : 수정 작업이 이루어지지 않은 상태에서 vi 편집기에서 빠져나옵니다. q! : 수정 작업이 이루어진 부분을 적용시키지 않고 vi 편집기를 강제로 빠져나옵니다. w : 수정된 작업을 저장합니다. wq : 수정된 작업을 저장하고 vi 편집기에서 빠져나옵니다. 초기 명령어모드 -> 입력모드진입 -> 편집 -> 명령어모드 -> 실행모드 -> 종료
⑥ vi 에디터를 이용하여 httpd.conf 파일에 모듈이 정상적으로 올라갔는지 확인 합니다. [root@nextline php4-STABLE-200701010530]# vi /usr/local/apache/conf/httpd.conf
⑦ LoadModule php4_module libexec/libphp4.so
⑧ AddModule mod_php4.c
⑨ DirectoryIndex index.html index.php index.jsp index.htm
⑩ AddType application/x-httpd-php .php .php4 .php3
(7) ZendOptimizer 설치
① 압축해제한 ZendOptimizer-2.6.0-linux-glibc21-i386 디렉토리로 이동합니다. [root@nextline ~]# cd ZendOptimizer-2.6.0-linux-glibc21-i386
② install.sh를 실행합니다. [root@nextline ZendOptimizer-2.6.0-linux-glibc21-i386]# ./install.sh
③ Zend Optimizer 환영메시지 화면 입니다. 를 선택합니다.

④ Zend Optimizer LICENSE 화면입니다. 를 선택합니다.

⑤ Zend Optimizer LICENSE 동의 화면입니다. 를 선택합니다.

⑥ Zend 설치경로를 지정하는 화면입니다. /usr/local/Zend(절대경로) 확인 후 를 선택합니다. Zend Optimizer 설치 경로가 자동 지정되지 않을 시 수동으로 /usr/local/Zend 경로를 지정해 주시면 됩니다. (Linux OS의 응용프로그램은 기본 /usr/local에 설치되기 때문에 /usr/local/Zend로 지정합니다.)

⑦ php.ini의 경로를 지정하는 화면입니다. php설치 시 php.ini 파일이 /usr/local/lib에 생성되기 때문에 /usr/local/lib(절대경로) 지정 후 를 선택합니다.

⑧ apaachectl의 경로를 지정하는 화면입니다. /usr/local/apache/bin/apachectl 지정 후 를 선택합니다.

⑨ Zend Optimizer + Apache 연동할 것인지를 묻는 화면입니다. 를 선택합니다.

⑩ 연동 진행 화면입니다.

⑪ php.ini 파일의 php.ini-zend_optimizer.bak 백업파일을 생성하는 화면이며, 생성위치는 php.ini 파일이 존재하는 /usr/local/lib 경로에 생성됩니다. 를 선택합니다.

⑫ Zend Optimizer 설치완료 화면입니다. 를 선택합니다.

⑬ apache 재 시작을 묻는 화면입니다. 를 선택합니다.

⑭ apache 재 시작 진행 화면입니다.

⑮ Apache 재 시작 성공 를 선택합니다.

(8) APM 연동 테스트 및 설정
[netstat 명령어 사용법]
리눅스서버 라우팅테이블 확인과 네트웍 연결 상태등을 확인할 수 있는 명령어입니다. 사용형식 : netstat [옵션] -a 옵션 : --all 과 같으며 listen 되는 소켓정보와 listen 되지 않는 소켓정보 모두를 보여줍니다. -n 옵션 : --numeric 과 같으며 10 진수의 수치정보로 결과를 출력 합니다. -p 옵션 : --program 과 같으며 실행되고있는 각 프로그램과 PID 정보를 출력 합니다. “|” 파이프 : 앞의 netstat -anp 한 결과를 그대로 grep에게 넘겨주는 겁니다. grep는 어떤 패턴에 맞는 것을 뽑아내는 역할을 주로 하는데 앞에서 넘어 온 netstat 정보중 listen되는 소켓정보만 출력합니다.
① 포트가 정상적으로 올라와 있는지 확인합니다. [root@nextline ~]# netstat -anp | grep LISTEN Apache 기본포트 : 80 Mysql 기본포트 : 3306

② 부팅시 apache, mysql이 자동 시작되도록 /etc/rc.d/rc.local에 등록하기 위하여 vi 에디터를 이용하여 rc.local파일을 엽니다. [root@nextline ~]# vi /etc/rc.d/rc.local

③ apache, mysql 시작 명령어를 추가합니다. /usr/local/apache/bin/apachectl start /usr/local/mysql/bin/mysqld_safe &

④ php 정보를 확인하기 위하여 vi 에디터를 이용하여 php_test.php 파일을 생성합니다. [root@nextline ~]# vi /usr/local/apache/htdocs/php_test.php

⑤ phpinfo(); ?>문을 추가합니다.

⑥ http://해당ip/php_test.php 확인화면 해당 ip : apm이 설치된 현재 서버의 ip를 입력하여 주시기 바랍니다. 웹 브라우저에 위 주소를 입력하시면 아래의 화면이 나오며 php, Zend, GD, Apache, Mysql, 라이브러리 등이 정상적으로 연동된 정보를 보여줍니다.

⑦ phpinfo 페이지 오류화면 phpinfo페이지가 정상적으로 나오지 않고 코드 Phpinfo(); ?>가 보이거나 아무것도 나타나지 않는 증상이 생기면 /usr/local/apache/conf/httpd.conf파일의 설정 상태를 확인한 후 apache를 재시작 하여 적용시켜 주시기 바랍니다. 오류1)
 오류2)
|
|