'Digital 이야기/S/W 이야기'에 해당되는 글 9건

  1. 2009.05.05 CentOS APM설치! yum으로 간단히 해결하기 67

CentOS APM설치! yum으로 간단히 해결하기

이 글은 2013년 6월 25일에 개정/수정되었습니다.
주기적으로 수정이 되지만 큰 틀은 벗어나지 않을 것입니다.
수정일 기준 CentOS 6.4 기준으로 작성되었습니다.

** 검색해보면 이글을 퍼가신분들이 참 많아요.. 출처를 밝히신분들도 있는반면  무시하신 분들이 생각보다 많네요. 초큼 속상하군요..


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


서버용으로 설치한다고는 해도 설치과정은 GUI로 할 수 있으니 파티션 잡는 것만 잘 넘어간다면 어려운 것은 없으니 언급하지 않겠다. 기회가 되면 이것도 한번 다뤄보는 것도 좋을 듯 싶기도 하고..

참고로 좀 안다 싶은 사람들을 위한 것이 아닌 본인처럼 완전 개초보를 위한 글이므로 이 글을 읽는 사람 중에 이건 아니다 싶어 뭔가 한소리 하고 싶은 사람은 미련 없이 "GET OFF!!"하기 바란다...


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


그들을 무시 하는 것은 아니지만 초보가 보기에는 상당히 혼란스럽고 어렵기만 하다. 도데체 뭘보고 해야 한단 말인가? 어느 것이 정확한 방법인가? 그리고 꼭 뭔가 하나씩 빼놓고 말한다. 그것 때문에 막혀서 안되는 경우도 허다하고. 또한 안정적으로 검증된, 제공된 방법으로 설치를 하고 싶을 수도 있고.....

세세한 커스터마이즈는 나중에 따로 해보고 지금 당장 설치를 원하는 초보들을 위해 yum으로 설치하는 방법을 소개하고자 한다. (더 쉬운 건 첨에 설치할 때 패키지 설치 해버리면 끝이겠지만......)


일단 설치는 알아서들 잘했다고 간주하고 인터넷이 되는지 확인 해보자 그래야 yum이던 뭐든 할것이다. 구글사마께 핑을 드려보자.
# ping -c3 google.com
언노운이거나 하면 아래와 같이 파일을 열어서 수정하면 된다.(6이상버전)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=no 를
ONBOOT=yes 로 고쳐주자.
** 편집은 i키를 누르고 수정하면되고 esc키를 눌러 편집 종료, :wq 라고 입력하고 엔터 하면 저장 하고 종료된다. 

수정까지 하고  저장 했다면 아래와 같이 네트워크를 다시 시작해주자.. IP받아오는것을 알 수가 있다
# /etc/rc.d/init.d/network restart

그리고 다시 핑테스트를 해서 핑이 잘 뜨면 인터넷은 잘 된다고 보고 일단 업데이트부터 하자!  RHEL은 충분한 테스트와 검증을 거쳐 업데이트 되므로 아주 특별한 이유로 이전 버전을 사용할 이유가 없다면 업데이트는 습관처럼 하는것이 좋겠다.

# yum update

나중에 해도 되지만 의존성 문제도 그렇고 이래저래 먼저 업데이트부터 하는게 좋다고 생각된다. 그럼 이제 본격적으로 시작이다.



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

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

설정 편집은 다음과 같이 하자.
# vi /etc/vsftpd/vsftpd.conf

편집은 i키를 누르고 수정, esc키를 눌러 편집 종료, :wq 라고 입력하고 엔터 하면 저장 하고 종료.
특별히 지금은 설정할 필요가 별로 없다. 나중에 인터넷의 각종 글들을 참조 해서 설정해주고 일단 chroot_list만 비활성또는 주석 되어 있는지 확인만 하자. 이유는 내 폴더의 상위에 접속 할 수 있어야 설치 단계에서는 그나마 편하기 때문인데 혼자 집에서 연습삼아 하는것이라면 내버려둬도 상관없지만 나중에 서비스할 서버를 만진다면 보안의 문제가 있으니 반드시 막아두도록 한다.

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

apacahe, mysql, php순으로 APM 설치

# yum -y install httpd
# yum -y install mysql
# yum -y install php

# yum -y install mysql-server
# yum -y install php-mysql
보통 알아서 빠른 미러를 찾아 의존성까지 확인해서 연계된 필수 패키지까지 알아서 설치 해준다.
이렇게 설치를 마치면 작성일/수정일 기준 
아파치는 2.2.15
php는 5.3.3
으로 설치된다.
(설치시기에 따라서 설치되는 버전은 다를 수 있으니 버전에 민감하지는 말것..)

추가 관련 라이브러리 설치
# yum -y install gd php-gd
# yum -y install libxml2
# yum -y install openssl 
mod_ssl
# yum -y install php-mbstring
이 밖에도 pear나 pear-MDB2등 원하는 패키지를 설치 할 수도 있다.
이미 설치되어 있는것도 있을 수 있고 아무튼 해보자 ^^; 
gd와 함께 설치되는 패티지들이 많다..

별도로 아래에 있는 것들은 기본 리포지터리에선 없는듯하다. 다른 저장소를 설정하면 설치가 된다.
# yum -y install mhash php-mhash
# yum -y install libmcrypt php-mcrypt
# yum -y install bcmath php-bcmath
# yum -y install soap php-soap


MYSQL 설정
기본관리 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 설정은 이제 다 끝났다! 
다만 재부팅 후 자동으로 실행 할 수 있도록 등록만 해주면 된다. 재부팅 후에 멍하니 서비스 안된다고 손가락 빨지말고!
일단 확인 해보자. 번호는 리눅스의 부팅 상태이다. 콘솔모드, GUI모드 등...
# 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
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      xxxx/mysqld
위와 같은 명령에서 보이는 결과중 "mysqld"  ":::3306" 뭐 이런 글귀가 보이면 정상적으로 동작!

APACHE & PHP설정
vi /etc/httpd/conf.d/php.conf

아래 두줄을 찾아 아래처럼 고친다. 

AddHandler php5-script .php .htm .html
AddType application/x-httpd-php-source .phps .php .htm .html <-요건 주석도 지워야 할것임..


** 이 포스트에서는 php.ini수정은 하지 않습니다. 차후에 php.ini 자세한 설정을 원하시는 분은 다른 문서를 참고 하세요.. 

각 항목 내용은 http://blog.daum.net/orangeville/17448464 에서 설명이 잘되어 있으니  참고하시면 좋을 것 같습니다.



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

vi /etc/httpd/conf/httpd.conf


User apache

  =>User nobody


Group apache

  =>Group nobody

#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


** 위 http.conf파일 수정은 아주 아주 기본적인 내용일 뿐이며 virtual host나 ssl적용 방법등은 다른 문서를 참고하시기 바랍니다.


** self sign으로 ssl 설치하기

http://www.xenocafe.com/tutorials/linux/centos/openssl/self_signed_certificates/index.php

비교적 초보용으로 참고하시기 좋은 링크를 남깁니다.


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

여기서 수정하고 추가 할것이 많기는 많다. 엄청.. 인터넷을 뒤져 보면 이 부분에 대한 많은 문서를 접할 수 있을 거라고 생각 되는데  이 문서가 부족하다고(분명 부족하다!) 느끼는 사람이 있거나 입맛에 맞는 설정을 원하는 사람은 맛보기로 설치 해보고 제대로 공부 해보자.

분명 잘(?) 찾아보면 본 문서 처럼 친절히(?) 설명된 많은 문서를 찾아 볼 수 있을것이다. 

 

마지막 거의 끝이나머지도 후딱하도록 하자!

 

특별히 다른 것은 없고 역시 아파치도 부팅 자동 실행이 되도록 되어 있나 확인 해 보자

# 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
tcp        0      0 :::80                       :::*                        LISTEN      xxx/httpd
위와 같은 명령에서 보이는 결과중 "httpd"  ":::80" 뭐 이런 글귀가 보이면 정상적으로 동작!

끝으로 시스템을 전체적으로 업데이트 해보고 재시작함으로서 모든 설치 과정은 끝난다.
# yum update
# reboot

 

이후 성능 업을 위해 아래 글을 따라가서 젠드 옵티마이저와 e엑셀러레이터를 설치 하면 되겠다..  
2010/08/09 - [Digital 이야기/S/W 이야기] - Zend Optimizer, eAccelerator yum으로 설치하기.

php의 버전 문제로 설치가 되지 않는다면 아래 컴파일 설치 포스트의 젠드 옵티마이저 설치 부분을 참고하면 되겠다.


익숙해졌다면 컴파일로 설치해보는 것도 도전해보자.

2013/06/25 - [Digital 이야기/S/W 이야기] - 컴파일로 APM 설치해보기


 

테스트 설치 환경

RAM :  1024MB

HDD : 20GB

OS image : CentOS-6.4-x86_64-bin-DVD1.iso, CentOS-6.4-x86_64-bin-DVD2.iso

 

참고로 가상머신에서 테스트하고 공유기를 사용중이면 Bridge로 네트워크를 설정하면 호스트OS와 같은 대역으로 IP를 사용하게되서 게스트OS의 네트워크 사용에 무리가 없었다.


 

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



사실 apache httpd.conf의 설정 등 세세한 것이 아~~~주 많이 남았다. 저대로만으로는 서비스는 당연히 좀 무리가 있기는 하지만 개인 개발용도로는 충분할것으로 생각된다. 하지만 위에 설명한 것 만으로도 처음 글을 시작할 때 yum으로 간단히 설치하기의 취지에 조금 벗어나지 않았나 싶을 정도로 긴 설치였지만, 이런저런 세팅으로 생각보다 좋은 기대성능을 보여준다.


사실 컴파일 설치시 더 좋은 성능 향상을 기대 할 수는 있다.(사실 컴파일 설치라기보단 컴파일 설치+세세한 튜닝이다.) 다만, 설치하는 사람 마다 노하우가 다르고 말그대로 노하우여서 속속들이 설명 해주는 사람도 드물고 여기저기 물어보고 시행착오를 좀 해야 정상적인 동작을 기대 할 수 있을것이다.

또한, 일관적이고 관리의 편리함을 따진다면 yum 설치만한것이 없다고 개인적으로 생각되고 이후 리눅스를 다루는데 어려움이 없어진다면 시도해보길 바라는 바이다.

 

설치는 차근히 따라만 한다면 쉽게 끝낼 수 있겠지만 아마도 정작 설치법보다 vi의 사용법이 더 어려울이라는 생각이드는데, 사실 본인도 적응하기까지 상당히 많은 시간이 필요했고 아직도 능수능란하게 사용하지는 못한다. vi로 프로그래밍하시는분들 존경하는 바이다.

 

그리고 실제 릴리즈된 버전보다 yum으로 설치하면 버전이 낮은 경우가 많은데 글의 서두에 말했다시피 CentOS RHEL의 클론이다. 즉 안정성에 우선된 검증된 릴리즈를 이용한다는 것이라고 보면 틀리지 않다고 생각된다.  보통 페도라 -> RHEL -> CentOS순으로 테스트되고 튜닝되서 릴리즈 된다고 보면된다.

엔터프라이즈 환경에서의 가장 중요한 점은 성능도 성능이지만 안정성이 최우선시 되는 게 당연하다고 본인은 느끼기 때문에 버전이 현재 릴리즈보다 낮다고 나쁠 건 없지 않겠는가?

또한 위에 살짝 관리자의 능력에 따라 배포판이 무엇이든 웹서버의 성능 또한 달라질 것이니 한가지 배포판에 얽매이지말고 자신에게 맞는 배포판을 찾아 사용해 보길 바란다.

익숙해졌다 생각하면 모든걸 컴파일 해가면 설치해보는 재미도 가져보길.


CentOS 6에서는 더 상위버전이므로 아래 내용은 무시하자. ^^;
추가. 위 방법대로 설치시 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 해줘야 함을 잊지말자! 꼭..

 

 

끝으로 여러분꼐서 알아야 할실것은 여기서는 기본적인 설치에 대한 이야기만 다루었다는  것 입니다. 혹시 페이지가 보이지 않을 수도 있습니다. 분명 APM설치는 저것만 제대로하면 100% 다 됩니다. 다만 방화벽 관련하여 설정하셔야 하는것 잊지 마셔야합니다. 방화벽 관련 문서를 검색해보시길 권장합니다.

setup이 설치 되어 있다면 setup 명령으로 간단히 끄고 켤 수도 있습니다만 자세하게 세팅하시는 것이 좋습니다.

 

그리고 앞에서 몇번 언급 했드시 왕초보를 위한 설치법인지라 설정의 많은 부분이 빠져 있고 어이 없는 세팅도 있습니다. 이 문서는 단지 테스트 화면 보기까지의 여정이랄까요? 보안 및 상세한 설정등은 꼭 다른 문서를 찾아 설정해보시길 부탁드립니다. 첫 발은 쉽게 하셨으니 조금만 노력하시면 금방 하실 수 있을 겁니다.

Posted by TheBits