레이블이 apm인 게시물을 표시합니다. 모든 게시물 표시
레이블이 apm인 게시물을 표시합니다. 모든 게시물 표시

2012년 2월 9일 목요일

yum을 사용한 apm설치


YUM을 이용한 APM 설치의 장점
- CentOS측의 권고 사항
- update의 편의성, 의존성과 관련된 패키지 설치가 용이하며 유지관리에도 많은 장점을 제공

YUM을 이용한 APM 설치의 단점
Source 컴파일에 의한 APM설치시에는 원하는 위치에 파일을 설치 할 수 있었지만 
YUM을 이용한 APM 설치시에는 기본 위치가 정해져 있다. 웹에서 그림파일을 지원하기 위한 패키지 모음

yum -y install zlib zlib-devel freetype freetype-devel freetype-utils gd gd-devel libjpeg libjped-devel libpng libpng-devel php-gd

yum은 콘솔에서 사용할 수 있는 리눅스 패키지 자동 업데이트 툴입니다. 이걸 이용하면 간편하게 패키지 업데이트들을 할수가 있죠. 단.. 컴파일 해서 설치한 경우는 제외입니다.

저도 이전에는 기본패키지만 설치하고 필요한 것들만 하나씩 컴파일 해서 사용했었는데 유지/보수를 생각한다면 yum을 이용한 패키지 관리를 추천합니다.


yum에는 이외에도 설정파일 및 저장소에 대한 정보 등등 다양한 기능+셋팅이 있겠지만 여기서는 일반유저들(저를 포함한)을 위한 기본적인 사용법에 대해서만 체크하도록 하겠습니다.
                                                          아래는 간단한 방법입니다.
1. apache 설치(httpd) : yum install httpd
2. mysql 설치 : yum install mysql
3. php 설치 : yum install php
4. php-mysql 연동 설치 : yum install php-mysql

                                                           다음은 상세방법입니다.

라이브러리를 설치 : yum -y install zlib libpng freetype gd libxml lib iconv

APM 관련 프로그램을 설치
yum -y install
httpd
mysql-server
mysql
php
php-devel
php-gd
php-mbstring
php-mysql
php-pear
php-pecl-mailparse 

1. Apache 설치

1) 설치 여부 체크 : yum list installed | grep http
2) apache port가 떠있는지 확인 : netstat -lntp
3) Apache 실행 :  /usr/sbin/apachectl start4) 데몬이 정상적 실행확인 :  netstat -lntp
     
2. Mysql 설치

1) 설치 여부 확인 : yum list installed | grep mysql
2) mysql client 설치 : yum install mysql
3) mysql server 설치 : yum install mysql-server
4) server 구동 : /etc/rc.d/init.d/mysqld start
5) password 변경 : /usr/bin/mysqladmin -u root password 'new password'
 
3. PHP 설치1) php 설치여부 확인 : which php ,yum list installed | grep php   설치 여부 확인
2) php 설치 : yum install php
3) 그외 필요요소들 설치
    yum -y install php-devel php-gd php-mbstring php-pear php-pecl-mailparse php-mysql mod_ssl4) 정상적인 설치 여부 확인 :  which php
5) 아파치의 php 설정에 다음줄을 추가해준다.
      vi /etc/httpd/conf.d/php.conf
      AddHandler php5-script .php
      AddType text/html .php
      AddType application/x-httpd-php .php .html .htm .inc  <- 추가
6) 아파치 재실행
    /usr/sbin/apachectl restart
다음은 요즘 많이들 설치하고 테스트하시는 Cent OS 셋팅법~

Continuing the series of articles covering Setting Up Apache / PHP, and Setting Up Exim this one covers a few of the smaller applications / configuration settings that need changing with a new CentOS 5 based server primarily used for virtual hosting.

iptables

iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT 1 -i lo -p all -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 40000:40100 -j ACCEPT
iptables -P INPUT DROP
/sbin/service iptables save

iptables (for IPv6)

ip6tables -F
ip6tables -I INPUT 1 -i lo -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
ip6tables -A OUTPUT -p ipv6-icmp -j ACCEPT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
ip6tables -P INPUT DROP
/sbin/service ip6tables save

Server Timezone

rm -f /etc/localtime
cp /usr/share/zoneinfo/Europe/London /etc/localtime

NTP

yum install ntp
chkconfig ntpd on
ntpdate pool.ntp.org
/etc/init.d/ntpd start

yum (email notifications)

yum will send an email when there are packages ready to be installed (via “yum update”), it can also automatically install them however I chose not to use this option.
yum install yum-updatesd
chkconfig yum-updatesd on
service yum-updatesd start

File: /etc/yum/yum-updatesd.conf
emit_via = email
email_to=mail@example.com
do_update=no

FTP

yum install vsftpd
chkconfig vsftpd on
service vsftpd start

File: /etc/vsftpd/vsftpd.conf
chroot_local_user=YESpasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100

MySQL

yum install mysql-server
chkconfig mysqld on
service mysqld start

/usr/bin/mysqladmin -u root password 'new-password'

PHP

yum install php
yum install php-gd
yum install php-mysql
yum install php-mbstring
yum install php-imap
yum install php-soap
yum install php-xml

chmod 777 /var/lib/php/session/
File: /etc/php.ini
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = On
upload_max_filesize = 8M

Cron

yum install vixie-cron
chkconfig crond on
service crond start

mkdir /var/log/prelink
chmod 700 /var/log/prelink
touch /var/log/prelink/prelink.log

Logrotate

yum install mlocate
mkdir /etc/logrotate.custom
chmod 700 /etc/logrotate.custom
echo $'\ninclude /etc/logrotate.custom' >> /etc/logrotate.conf
File: /etc/logrotate.custom/www.example.com
(for each website setup in apache)

/var/log/domlogs/useracctname/www.example.com*_log {
monthly
rotate 12
compress
delaycompress
create 640
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}

Extra IP Address

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
File: /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
IPADDR=111.222.333.444
ifconfig eth0:0 111.222.333.444 up
source : http://www.ns-tech.co.uk/blog/2010/03/setting-up-a-centos-5-server/

2012년 2월 8일 수요일

64비트 centos APM설치

환경 : CENTOS 5.X  (64BIT)

설치 내용

설치 내용
APACHE 2.2 ( mod_url + mod_security )
PHP 5.2.5
MYSQL 4.0.20 (euckr)

MYSQL은 상황에 따라 5.X로 설치해도 무관하다

이 APM을 설치하기 앞서 CENTOS5 버전은 SELINUX를 기본 사용한다
꼭 이것을 disable 한 후 리부팅 한 후에 APM 설치한다
[root@localhost ~]# vi /etc/selinux/config
SELINUX=enforcing  ---> SELINUX=disabled

[root@localhost ~]# init 6  (리부팅)

1. 라이브러리 설치하기  (기존에는 라이브러리를 일일이 컴파일 하였지만 기본적으로 제공되는 yum
  패키지를 이용하여 라이브러리를 설치 하면 된다

[root@idccc ~]# yum -y install gcc gcc-c++ termcap libtermcap libtermcap-devel gdbm-devel zlib* libxml* freetype* libpng* libjpeg* gd gd-devel libmcrypt libmcrypt-devel mhash mhash-devel apr apr-* libc-client-devel openssl-devel krb5-devel 

php설치시에 iconv에러가 발생되기 때문에 iconv만 따로 컴파일 작업을 진행한다

[root@loca ~]# wget mirror.koreaidc.com/library/libiconv-1.13.tar.gz
[root@loca ~]# tar xvfz libiconv-1.13.tar.gz
[root@loca ~]# cd libiconv-1.13
[root@loca libiconv-1.13]# ./configure && make && make install

심벌릭 링크
[root@loca libiconv-1.13]# ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
[root@loca libiconv-1.13]# ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/libiconv.so.2


3. dovecot 설치 ( pop3기능을 하면서 PHP 설치시에 IMAP 기능을 활성하 하기 위해서 설치한다)
  하지만 dovecot 을 설치하면 의존성 관계로 mysql이 같이 설치되는데 이것은 추후 삭제하면 된다

[root@idccc ~]# yum -y install dovecot

강제로 mysql을 삭제

[root@idccc ~]# rpm -e mysql --nodeps

4. MYSQL 설치

  mysql 4.x 설치시 에러가 발생되는 경우가 있는데 이는 쓰레드 옵션때문이다
  쓰레드를 사용하기 위해서 아래와 같이 옵션을 추가해준다

[root@idccc ~]# echo "/* Linuxthreads */" >> /usr/include/pthread.h

 버전에 따라 mysql을 다운로드 하면 된다

[root@idccc ~]# wget mirror.koreaidc.com/mysql/mysql-4.0.20.tar.gz
[root@idccc ~]# tar xvfz mysql-4.0.20.tar.gz
[root@idccc ~]# cd mysql-4.0.20
[root@idccc mysql-4.0.20]# ./configure --prefix=/usr/local/mysql \
--with-unix-soket-path=/usr/local/mysql/tmp --enable-thread-safe-client \
--with-charset=latin1 --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static \
--without-debug --with-innodb --with-readline --with-berkeley-db --without-bench \
--with-extra-charsets=complex --with-charset=euc_kr --localstatedir=/free/mysql_data

[root@idccc mysql-4.0.20]# make
[root@idccc mysql-4.0.20]# make install

데이터베이스 인스톨

[root@idccc mysql-4.0.20]# cd /usr/local/mysql/bin
[root@idccc bin]# ./mysql_install_db

환경설정 파일 복사 및 퍼미션 변경

[root@idccc bin]# cd /usr/local/mysql/share/mysql
[root@idccc mysql]# cp -p ./mysql.server /usr/bin
[root@idccc mysql]# cp -a /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql
[root@idccc mysql]# ln -s /etc/rc.d/init.d/mysql /etc/rc.d/rc3.d/S97mysql
[root@idccc mysql]# chown -R root /usr/local/mysql
[root@idccc mysql]# chown -R mysql /free/mysql_data
[root@idccc mysql]# chgrp -R mysql /usr/local/mysql
[root@idccc mysql]# cp /usr/local/mysql/share/mysql/my-huge.cnf /etc/my.cnf

5. APACHE 설치

[root@idccc mysql]# cd /root
[root@idccc ~]# wget http://mirror.koreaidc.com/apache/httpd-2.2.14.tar.gz
[root@idccc ~]# tar xvfz httpd-2.2.14.tar.gz
[root@idccc ~]# cd httpd-2.2.14

기본값으로 설치시에는 최대 접속자수가 256이다 이것을 2048까지 늘려주기 위해 파일을 수정한다
여기서는 vi를 이용하지 않고 perl을 이용해 바로 수정하였다

[root@idccc httpd-2.2.14]# perl -pi -e "s/LIMIT 256/LIMIT 2048/g" server/mpm/prefork/prefork.c
[root@idccc httpd-2.2.14]# perl -pi -e "s/LIMIT 16/LIMIT 128/g" server/mpm/worker/worker.c

컴파일 작업 (옵션 내용중에서 prefork 방식과 worker 방식이 있는데 쓰레드 방식을 이용한다면
worker 선택하면 된다 즉 자식 프로세서를 이용한다는 것이다)

[root@idccc httpd-2.2.14]# ./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-module=shared --enable-rewrite --enable-ssl --with-ssl --with-mpm=worker
[root@idccc httpd-2.2.14]# make
[root@idccc httpd-2.2.14]# make install


mod_url 설치 (한글로 된 파일 오류 표시 수정)

[root@idccc ~]# wget mirror.koreaidc.com/apache/mod_url-apache2-1[1].15.tar.bz2
[root@idccc ~]# tar xvfj mod_url-apache2-1\[1\].15.tar.bz2
[root@idccc ~]# cd mod_url-apache2
[root@idccc mod_url-apache2]# /usr/local/apache/bin/apxs -iac mod_url.c

이제 APACHE는 설치가 완료되었으므로 상황에 맞게 APACHE를 튜닝하면 된다 

6.PHP 설치

PHP설치에 앞서 라이브러리를 인식시키는 작업을 한다

[root@loca ~]# echo "/lib" >> /etc/ld.so.conf
[root@loca ~]# echo "/lib64" >> /etc/ld.so.conf
[root@loca ~]# echo "/lib" >> /etc/ld.so.conf
[root@loca ~]# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
[root@loca ~]# echo "/usr/local/apache/modules" >> /etc/ld.so.conf
[root@loca ~]# echo "/usr/lib64" >> /etc/ld.so.conf
[root@loca ~]# echo "/usr/local/lib64" >> /etc/ld.so.conf
[root@loca ~]# ldconfig

PHP 다운로드 및 설치

[root@idccc ~]# wget http://mirror.koreaidc.com/php/php-5.2.5.tar.gz
[root@idccc ~]# tar xvfz php-5.2.5.tar.gz
[root@idccc ~]# cd php-5.2.5
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --with-png-dir=/usr/lib64 --with-zlib-dir=/usr/lib64 --with-gdbm=/usr/lib64 --with-gif-dir=/usr/lib64 --with-iconv=/usr/local --with-libidn=/usr/lib64 --with-freetype-dir=/usr --with-jpeg-dir=/usr --enable-mod-charset --with-language=korean --with-charset=euc_kr --with-gettext --with-ldap-dir=/usr/lib --with-imap --with-imap-ssl --with-ttf --with-kerberos --with-curl --with-db --with-png --with-zlib --with-xml --with-idn --with-gd --enable-exif --enable-trans-sid --enable-wddx --enable-magic-quotes --enable-calendar --enable-sockets --enable-ftp --enable-gd-imgstrttf --enable-bcmath --enable-force-cgi-redirect --enable-track-vars=yes --enable-mbstring --enable-mbregex --enable-mbstr-enc-trans --enable-sigchild --enable-idn --enable-sockets --enable-dbx --enable-dbase
[root@idccc php-5.2.5]# make
[root@idccc php-5.2.5]# make install

php.ini 파일 복사 및  환경설정 내용 변경  (vi로 변경해도 되지만 쉽게 perl로 변경)

[root@idccc php-5.2.5]# cp -a php.ini-dist /usr/local/apache/conf/php.ini
[root@idccc php-5.2.5]# perl -pi -e "s/register_globals = Off/register_globals = On/g" /usr/local/apache/conf/php.ini
[root@idccc php-5.2.5]# perl -pi -e "s/upload_max_filesize = 2M/upload_max_filesize = 12M/g" /usr/local/apache/conf/php.ini
[root@idccc php-5.2.5]# perl -pi -e "s/allow_url_fopen = On/allow_url_fopen = Off/g" /usr/local/apache/conf/php.ini

일반 사용자도 php를 사용할수 있게 심벌릭 링크

[root@idccc php-5.2.5]# ln -s /usr/local/php/bin/php /usr/bin/php

아파치에 모듈 추가

[root@idccc php-5.2.5]# vi /usr/local/apache/conf/httpd.conf

LoadModule php5_module        modules/libphp5.so

7. ZendOptimizer 설치 (php 가속도를 위해서 설치)

[root@idccc ~]# wget http://mirror.koreaidc.com/Zend/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
[root@idccc ~]# tar xvfz ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
[root@idccc ~]# cd ZendOptimizer-3.3.3-linux-glibc23-x86_64
[root@idccc ZendOptimizer-3.3.3-linux-glibc23-x86_64]# ./install

php.ini  위치 입력시 다음과 같이 입력  :  /usr/local/apache/conf   

8. 이제 최종 모두 설치가 완료 되었다
  각 데모은 실행시켜보면 동작이 되는지를 확인하며 된다

LINUX centos APM설치 원하는버전으로



Mysql PHP apache 한번에 설치하기
저도 처음 APM을 설치할 때 이틀을 꼬박 밤 세워가며 50여번(거짓말 아님)의 설치 끝에 설치에 성공한 기억(악몽?)이 있다. 그만큼 APM의 설치는 간단하면서도 어려울수 있다. 왜냐면 예상치 못한 에러 메시지가 나올 때 마다 지옥과 천당을 오가는 느낌을 느낄 수 있을 것이다.
APM을 설치하다가 어떤 에러메시지를 만나더라고 당황하지 말고 게시판에 도움요청글을 올리기 바란다.

이 메뉴얼을 보고 설치하는 것이 짜증나는 사람은 자료실에 A.P.M 자동설치 스크립트를 이용하기 바란다. 그 스크립트는 이 강좌의 내용을 적용해서 만든 스크립트로  A.P.M의 설치를 쉽게 도와 줄 것이다.

A.P.M을 설치하기로 마음 먹었다면 기존의 RPM으로 설치된 apache와 php, mysql을 삭제해야 된다. 설치를 다하고 느끼겠지만 RPM 으로 설치된 것은 아파치나 php, mysql에 관련된 파일이 흩어져 있기 때문에 관리하기가 무척 힘이 든다(성질나서 컴퓨터를 발로 찰수도 있다)
A.P.M 의 모든 파일은 소스를 컴파일해서 설치할 것이다.
A.P.M(apache, php, mysql)을 설치하는 순서는 mysql을 먼저 설치하고 그다음 php를 마지막으로 apache를 설치하는 순이다.
[APM설치 준비단계]

우선 현재 아파치가 실행중인지 확인한다.[root@yunil /root]# ps -aux | grep httpd

아파치가 실행중이라면 httpd와 관련된 프로세서가 주~~욱 뜰 것이다
실행중인 아파치를 죽여야 한다[root@yunil /root]# kill ***
("***"는 프로세스 아이디를 적어주면 된다. nobody라고 되어있는 프로세서는 자식 프로세서이므로 root유저로 되어있는 프로세서만 죽이면 나머지는 같이 죽어버린다)

이제 RPM으로 설치된 아파치 정보를 자세히 알아보자[root@yunil /root]# rpm -qa | grep apache

아파치와 관련된 여러개의 패키지가 검색 될 것이다.
여러 패키지 중에 apache만 삭제해 주면 된다. 다음과 같이...[root@yunil /root]# rpm -e --nodeps apache
이젠 아파치가 제거 되었다.
그런데 빈 디렉토리가 아니라서 삭제가 안된 디렉토리가 있다고 나오죠
그 디렉토리를 "rm -rf" 명령으로  다 지워줍니다.[root@yunil /root]# rm -rf 디렉토리명
php도 제거하자[root@yunil /root]# rmp -e --nodeps php

이제 마지막으로  mysql을 제거 해야 된다.[root@yunil /root]# rpm -e --nodeps mysql

레드헷 6.2 이전버젼에서는 mysql이 기본적으로 설치되어 있지 않아 mysql을 삭제해 줄 필요가 없었는데 레드헷 6.2부터는 mysql패키지도 기본적으로 설치 되어 있기 때문에 당연히 삭제해 줘야 된다.
저희 사이트의 자주 올라오는 mysql 관련 질문중에 A.P.M을 소스로 잘 설치해서 mysql을 잘 실행 했는데도 mysql 에 접속할려고 하면 mysql.sock 파일을 /tmp에서 찾을 수 없다는 에러가난다는 분들이 많았다.
문제의 원인은 rpm으로 설치된 mysql을 삭제하지 않은 상태에서 mysql을 소스 컴파일로 설치를 한 후 mysql을 실행 하기 위해 safe_mysqld를 실행하면 소스로 설치된 mysql 데몬이 실행되는 것이 아니라 전에 지우지 않았던 mysql데몬이 실행되어서 mysql.sock 파일이 /tmp에 생기는 것이 아니라 /var/mysql/에 생성되었기 때문이다.
이 문제를 /var/mysql/안에 생긴 mysql.sock를 /tmp에 링크 시켜서 해결하는 분들도 있었는데 이런 해결 방법은 좋지 않은 방법이다.

mysql을 다운 받을 수 있는 곳 : htt://mysql.com,
php를 다운받을 수 있는 곳 : http://php.net
apache를 다운 받을 수 있는 곳 : http://apache.org
apache, php, mysql은 루트맨의 자료실에서도 있습니다.
[mysql 설치하기]

다운 받은 모든 Apache와 Mysql소스들은 /tmp 디렉토리에 옮겨서 설치를 진행할 것이다.

1> 다운받은 파일을 /tmp에 이동시키자[root@yunil /root]# mv mysql* /tmp

mysql 파일이 있는 /tmp 디렉토리로 이동하자 [root@yunil /tmp]# cd /tmp
2> mysql 압축을 풀자[root@yunil tmp]# tar zxvf mysql*
압축이 풀리는 과정이 화면에 나올 것이다.

압축이 풀린 디렉토리로 이동하자[root@yunil tmp]# cd mysql*
3> configure 실행한다.[root@yunil mysql?]# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr
4> 컴파일과 설치를 하기 위해 make와 make install을 실행한다.[root@yunil mysql?]# make
[root@yunil mysql?]# make install
configure 옵션에 --prefix로 디렉토리를 /usr/local/mysql로 지정했기 때문에 mysql은 /usr/local/mysql에 깔려 있을 것이다. l

5> 이젠 기본 테이블을 만들어 주는 스크립트를 실행하자[root@yunil mysql]# /usr/local/mysql/bin/mysql_install_db

만약 ./bin 디레토리 안에 mysql_install_db라는 디렉토리가 없다고 나오는 사용자는 다음과 같이 해준다.[root@yunil mysql]#/usr/local/mysql/scripts/mysql_install_db

이젠 mysql의 설치가 끝났다 테스트를 해보자
[mysql 테스트]

1> 일단 mysql 서버 데이터 데몬을 기동시키자[root@yunil mysql]# /usr/local/mysql/bin/safe_mysqld &
(마지막의 &는 mysql을 백그라운드로 실행시켜준다)
이젠 mysql을 사용할 수 있다.

2> 다음과 같이 명령하면 mysql DB에 접속할 수 있다.[root@yunil mysql]# /usr/local/mysql/bin/mysql mysql
아직 mysql의 root 비밀번호를 설정하지 않았기 때문에 비밀번호 없이 mysql에 로그인 된다.
mysql>   --->mysql 프롬프트가 뜬다.
아래와 같이 명령해 보자
mysql> show tables; ( 끝에 세미콜론(;)을 빼먹지 말자)
테이블 정보가 보일 것이다.
이번엔 s 명령을 테스트 해보자
mysql> s
위 명령으로 데이터 베이스 상태를 알 수 있다.

테스트가 끝났으면 mysql을 종료하고 쉘로 빠져 나오자.mysql> q

이제 php와 apache 설치로 넘어가자.  
[php와 apache 설치하기]

1> 
다운 받은 php파일을 /usr/local/src로 옮기자[root@yunil /root]# mv php* /usr/local/src

2> php 압축풀기
다운받은 php가 있는 /usr/local/src로 이동하자
[root@yunil /root]# cd /usr/local/src

php 압축을 풀어 준다.
[root@yunil /root]# #tar zxvf php*

php를 apahce의 모듈로 쓰기 위해 php설치 전에 apache에 간단한 설정을 해야 된다.

3> 다운 받은 apache 파일을 /tmp 디렉토리로 옮기자
[root@yunil /root]# mv apache* /tmp

/tmp 디렉토리로 이동하자
[root@yunil mysql]# cd /tmp

4> apache 압축을 풀자
[root@yunil mysql]# tar zxvf apache*

이젠 압축이 풀린 디렉토리로 이동하자.
[root@yunil mysql]# cd apache*

5> configure를 실행하자
[root@yunil mysql]# ./configure --prefix=/usr/local/apache
(이렇게 해야만 php가 아파치의 디렉토리에서 필요한 파일들을 참조할 수 있다)

이젠 php를 컴파일 할 준비가 되었다.

6> php가 압축이 풀린 디렉토리로 이동하자
[root@yunil mysql]# cd /usr/local/src/php*

7> configure를 실행하자
[root@yunil mysql]#  --> 한줄에 다 못써서 아랫줄에 내렸음
./configure --with-mysql=/usr/local/mysql--with-apache=/tmp/apache??? --enable-track-vars  

(--with-apache=/tmp/apache???는 조금전에 압축을 풀어서 생긴 아파치 소스 디렉토리 경로를 정확하게 적어 줘야 됩니다. ex) --with-apache=/tmp/apache_1.3.20   )
8> 이제 php를 컴파일 하고 설치를 하기 위해 make 와 make install을 실행한다.[root@yunil mysql]# make[root@yunil mysql]# make install

php의 설치가 끝났다

9> 이제 아파치 설치를 위해 아파치가 소스가 있는 디렉토리로 이동하자
[root@yunil mysql]# cd /tmp/apache*

10> configure를 실행한다.
[root@yunil mysql]#  --> 한줄에 다 못써서 아랫줄에 내렸음
./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a


(activate-module 는 아파치 서버에서 읽을 모듈에 대한 것이다.)

11> 이제 아파치를 컴파일하고 설치 하기 위해 make와 make install을 실행한다.
[root@yunil mysql]# make[root@yunil mysql]# make install

설치가 다 되었으면 아파치데몬이 잘 가동 되는지 확인 하자

12> 아파치를 기동시키자
[root@yunil mysql]# /usr/local/apache/bin/apachectl start

아파치가 문제없이 실행 되었다면 설치는 여기서 끝...

하지만 php를 아파치에서 잘 사용하기 위해서 몇가지 수정작업이 남았다.
[설치후 수정작업]

1> 먼저 php가 설치된 디렉토리로 이동하자
[root@yunil mysql]# cd /usr/local/src/php

2> 아파치웹서버가 php를 사용할 때 읽어들일 설정 파일을 복사합니다.
[root@yunil mysql]# cp php4.ini-dist  /usr/local/lib/php.ini
5> 마지막으로 httpd.conf 파일을 수정하는 일만 남았다.
vi 편집기로 httpd.conf파일을 연다.
[root@yunil mysql]#vi /usr/local/apache/conf/httpd.conf
명령란인에서 /php 라고 하면 아래와 같은 문장이 나온다.
아래와 같이 #(주석)을 삭제하고 수정후와 같이 추가한다.
  • [수정전]
  • #AddType application/x-httpd-php .php
  • #AddType application/x-httpd-php-source .phps
  • [수정후]
  • AddType application/x-httpd-php .php .php3 .html .htm
  • AddType application/x-httpd-php-source .phps 
6> 위의 수정사항을 적용하기 위해서는 아파치데몬을 재실행 해야 된다.[root@yunil mysql]# /usr/local/apache/bin/apachectl restart

7> php가 잘 적용되는지 확인하기 위해 다음과 같이 test.php파일을 만든다.
test.php는 웹서버의 홈디렉토리인 /usr/local/apache/htdocs/에 만드세요.
[root@yunil mysql]# vi test.php


phpinfo();
?>
이렇게 작성하고 파일을 저장한다.

web브라우저를 열어서 
http://localhost/test.php 하면 php 정보가 주욱 뜰 것이다.
이제 모든 과정이 끝났다.
설치에 성공하기를.....
문의할 사항이 있으면 게시판에 글 올리기 바란다. 
 

CentOS APM설치 (YUM 사용)


CentOS는 RedHat Enterprise의 클론 리눅스다.. 무료로 RHEL의 검증되고 안정된 서버를 구축할 수 있다는 장점을 가지고 있다.

서버용으로 설치한다고는 해도 설치과정은 GUI로 할 수 있으니 파티션 잡는 것만 잘 넘어간다면 어려운 것은 없으니 언급하지 않겠다. 기회가 되면 이것도 한번 다뤄보는 것도 좋을 듯 싶기도 하고..
참고로 좀 안다 싶은 사람들을 위한 것이 아닌 본인처럼 완전 개초보를 위한 글이므로 이 글을 읽는 사람 중에 이건 아니다 싶은 사람은 미련 없이 "GET OFF!!"하기 바란다. 

사실 APM설치에 대해 인터넷에서 검색해보면 굉장히 많은 자료가 나오고 그 자료 마다 컴파일 하는데 있어서의 방법 등에 있어서 상당히 다른 방법을 제시하는 경우가 많다.

그들을 무시 하는 것은 아니지만 초보가 보기에는 상당히 혼란스럽고 어렵기만 하다. 또한 안정적으로 검증된, 제공된 방법으로 설치를 하고 싶을 수도 있고..
세세한 커스터마이즈는 나중에 해보기로 하고 지금 당장 설치를 원하는 초보들을 위해 yum으로 설치하는 방법을 소개하고자 한다. (더 쉬운 건 첨에 설치할 때 패키지 설치 해버리면 끝이겠지만......)
더보기
일단 인터넷이 되는지 확인 해보자 그래야 yum이던 뭐든 할것이다. 구글사마께 핑을 드려보자.
# ping -c3 google.com
자 핑이 잘 뜨면 인터넷은 잘 된다고 보고~ 이제 본격적으루다가..

준비작업(현 단계에서는 필수가 아니고 약간의 편의를 위해서 이므로 넘어가도 되고 아래 실제 설치 단계에서도 사용하지는 않는다.)1. putty
   리눅스 자체 콘솔 보다는 Putty가 다루는데 많은 편의를 제공 할 것이다.
   "창 - 변환 - 수신 데이터의 문자 셋 변환"에서 UTF8로 설정하고 접속 하면 한글도 잘 보이고 좋다.

2. FTP서버
  ftp서버 환경을 미리구성하고 놓고 작업을 하면 조금은 더 편하다. 언젠가는 설치 해야 하니까 FTP환경을 구축해보자. 설치는 vsftpd를 해보자.
# yum -y install vsftpd

설정 편집은 다음과 같이 하자.
# vi /etc/vsftpd/vsftpd.conf
편집은 i키를 누르고 수정, esc키를 눌러 편집 종료, :wq 라고 입력하고 엔터 하면 저장 하고 종료.
특별히 지금은 설정할 필요가 별로 없다. 나중에 인터넷의 각졸 글들을 참조 해서 설정해주고 일단 chroot_list만 비활성또는 주석 되어 있는지 확인만 하자. 이유는 내 폴더의 상위에 접속 할 수 있어야 설치 단계에서는 그나마 편하기 때문인데 나중에 보안의 문제가 있으니 나중에는 막아 두길 권장한다.

뿌띠와 FTP서버가 준비 되었으면 설치 작업을 시작 한다.

알림. 아래  방법대로 설치시 PHP 5.1.6으로 설치 된다. 이러저러한 이유로 상위 버전으로 설치하고 싶다면 이 글의 제일 아래부분을 확인 하자.
apacahe, mysql, php순으로 APM 설치
# yum -y install httpd
# yum -y install mysql
# yum -y install php

보통 알아서 빠른 미러를 찾아 의존성까지 확인해서 연계된 필수 패키지까지 알아서 설치 해준다.

관련 라이브러리 설치
# yum -y install gd gd-devel# yum -y install libpng libpng-devel# yum -y install libjpeg libjpeg-devel# yum -y install freetype freetype-devel
# yum -y install fontconfig  fontconfig-devel
# yum -y install libxml2 libxml2-devel
# yum -y install openssl openssl-devel# yum -y install gmp gmp-devel# yum -y install mhash mhash-devel# yum -y install libmcrypt libmcrypt-devel
# yum -y install mysql-server# yum -y install php-mysql
# yum -y install php-devel
# yum -y install php-gd
# yum -y install php-mbstring
# yum -y install php-mhash
이 밖에도 pear나 pear-MDB2등 원하는 패키지를 설치 할 수도 있다.
* 제일 처음에 나오는 gd를 설치하면 뒤에 나오는 libjpeg, libpng, freetype, fontconfig과 같이 자동으로 설치되지만 혹시나 하는 분들은 확인겸 설치 해보기 바란다.

MYSQL 설정 - 안하고 패스 해도 됨
이제 설정을 하자...
mysql에서 사용할 환경 설정파일을 복사해야 하는데 시스템에 따라서 좀 다르다. 아래를 참조하자
my-huge.cnf       1GB 이상 메모리
my-large.cnf       512MB ~ 1GB
my-medium.cnf  128MB ~ 256MB
my-small.cnf      64MB 이하
# cp /usr/share/mysql/my-large.cnf /etc/my.cnf
본인은 Virtual Box로 설치해봤는데 512여서 large를 사용했다.

기본관리 db를 설정하고, 권한지정도 해주자
# /usr/bin/mysql_install_db --user=mysql
# chown -R root /usr/bin/
# chgrp -R mysql /usr/bin/
# chown -R mysql /var/lib/mysql/

이제 콘솔에서도 mysql 명령들을 사용 할 수 있도록 등록해보자.
# vi ~/.bash_profile
PATH부분에 다음과 같이 추가 한다
PATH=$PATH:$HOME/bin:/usr/bin

지루한 mysql 설정은 이제 다 끝났다 다만 재부팅 후 자동으로 실행 할 수 있도록 등록만 해주면 된다. 일단 확인 해보자.
# chkconfig  --list | grep mysqld
mysqld  0:off 1:off 2:on 3:on 4:on 5:on 6:off
위와 같이 나오지 않는다면?
# chkconfig --level 2345 mysqld on
다시 확인해 보면 원하는 대로 되어 있을 것이다.

이제 mysql를 시작하고 루트 비밀번호를 설정하고 동작 하는지 확인한 후 mysql은 끝내자.
# /etc/rc.d/init.d/mysqld start
# /usr/bin/mysqladmin -uroot password 비번
동작은 하나?
# netstat -lntp
위와 같은 명령에서 보이는 결과중 "mysqld"  ":::3306" 뭐 이런 글귀가 보이면 정상적으로 동작한다고 생각해도 된다.

PHP설정
# vi /etc/httpd/conf.d/php.conf
아래 두줄을 찾아 아래처럼 고친다. 
AddHandler php5-script .php .htm .html
AddType application/x-httpd-php-source .phps .php .htm .html

수정이 끝났으면 저장 하고  같은 방법으로 httpd.conf 파일을 아래와 같은 부분들을 찾아 수정/추가한다.

# vi /etc/httpd/conf/httpd.conf

#ServerName www.example.com:80 (자신의 서버이름이니 알아서 적당히)
   => ServerName localhost:80 
Options Indexes FollowSymLinks
  => Options -Indexes
AllowOverride None
  => AllowOverride All
DirectoryIndex index.html index.html.var
 => DirectoryIndex index.html index.htm index.php
AddType application/x-gzip .gz .tgz 을 찾아 그 다음줄에 아래 두줄  내용 추가
AddType application/x-httpd-php .htm .html .php .ph php3 .php4 .phtml .inc
AddType application/x-httpd-php-source .phps
#AddHandler cgi-script .cgi 주석 삭제
  => AddHandler cgi-script .cgi


*  
사실 vi 나 vim등 리눅스의 에디터는 윈도우즈에 익숙한 사람에게는 더 없이 당황하게 만드는 소프트웨어중 하나인데(적응만 한다면 더 없는 최고의 에디터라지만 적응은 요원하기만 하다!) 좀 쉽게 사용을 원한다면 "#yum -y install mc" 해서 mc를 사용해 보라 조금은 편하게 사용 할 수 있을것이다.
 사실 제일 편한건 콘솔에서 직접 하는 것보다 뿌띠로 열어서  하는것과 FTP로 수정 하는것이다.. 위에서 FTP로는 에디트플러스 같은걸로 바로 수정하면 되니까..

여기서 수정하고 추가 할것이 많기는 많다. 엄청.. 인터넷을 뒤져 보면 이부분에 대한 많은 분서를 접할 수 있을 거라고 생각 되는데  이 문서가 부족하다고 느끼는 사람이 있거나 입맛에 맞는 설정을 원하는 사람은 맛보기로 설치 해보고 제대로 공부 해보자. 친절히 설명된 많은 문서를 볼 수 있을것이다(검색의 수고로움이 더해져야 하지만.. 대부분 자기는 안다고 휘리릭 넘어가는 경우가 많다....)

자 마지막으로 apache다!
설정 할 것은 일단 하나뿐이고 어렵 않으니 후딱하도록 하자!

특별히 다른 것은 없고 부팅 시 자동 실행이 되도록 되어 있나 확인만 해보자
# chkconfig  --list | grep httpd
httpd  0:off 1:off 2:on 3:on 4:on 5:on 6:off
역시나 위처럼 나오지 않는다면 아래와 같이 설정한다.
# chkconfig --level 2345 httpd on
다시 확인해 보면 원하는 대로 되어 있을 것이다.

이제 apache를 시작해보고 동작이 되는지 확인한다
# /usr/sbin/apachectl start
# netstat -lntp
위와 같은 명령에서 보이는 결과중 "httpd"  ":::80" 뭐 이런 글귀가 보이면 정상적으로 동작한다고 생각해도 된다.

끝으로 시스템을 전체적으로 업데이트 해보자
# yum update
주루룩 뭔가 많이 지나가고 업데이트 된다. 끝났다면
# reboot
으로 시스템을 재시작 함으로서 모든 설치 과정은 끝난다.

테스트 설치 환경
VM : VirtualBox
RAM :  512MB
HDD : 80GB
OS image : CentOS-5.3-i386-bin-DVD.iso
 설치 시 네트워크는 NAT로 사용했고 테스트는 호스트 OS에서 접근을 해야 하므로 HOST-Only로 테스트 했다.
 Virtual Box는 아쉽게도 본인이 사용법을 정확히 이해하지 못했는지 호스트 OS가 바로 게스트 OS에 접근이 불가능했다. 하지만 공유기를 이용하고IP를 Virtual Box 호스트 어댑터와 같은 대역으로 맞춘다면 인터넷도 가능 하리라 생각해본다. (귀찮아서 공유기 연결 안 했음)

아래는 위 설정 방법으로 설치된 스크린샷이다.
더보기

사실 apache의 httpd.conf의 설정 등 세세한 것이 아~~~주 많이 남았지만 위에 설명한 것 만으로도 처음 글을 시작할 때 yum으로 간단히 설치하기의 취지에 조금 벗어나지 않았나 싶을 정도로 긴 설치였다.

하지만 차근히 따라만 한다면 쉽게 끝낼 수 있으리라 본다. 다만 vi의 사용법이 더 어려울지도 모르겠다. ^^a

 그리고 실제 릴리즈된 버전보다 YUM으로 설치하면 버전이 낮은 경우가 많은데 글의 서두에 말했다시피 CentOS는 RHEL의 클론이다. 즉 안정성에 우선된 검증된 릴리즈를 이용한다는 것이라고 보면 틀리지 않다고 생각된다. 
 엔터프라이즈 환경에서의 가장 중요한 점은 성능도 성능이지만 안정성이 최우선시 되는 게 당연하다고 본인은 느끼기 때문에 버전이 현재 릴리즈보다 낮다고 나쁠 건 없지 않겠는가?

추가. 위 방법대로 설치시 PHP 5.1.6으로 설치 된다. 이러저러한 이유로 상위 버전으로 설치하고 싶다면 아래처럼 해보자.
 
# cd /etc/yum.repos.d
# wget http://dev.centos.org/centos/5/CentOS-Testing.repo
$ yum --enablerepo=c5-testing update php
이렇게 하면 5.2.10으로 설치된다.
나중에 상위버전으로 설치한 경우 반드시 yum update 해줘야 함을 잊지말자! 꼭..