Home | Data Center | Contact US | Login

제목 APM 소스설치
첨부파일 APM 소스설치.pdf 작성일 2007-01-30 12:04:48

작성자 : 기술지원부 김 삼 수 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


⑤ 문을 추가합니다.


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


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

오류2)
  IIS 설치
  www 대역폭설정





회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도
회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도 회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도