본문 바로가기

Development/Servers

cafe24 클라우드 호스팅 셋업

클라우드 호스팅 절약형을 신청하고 계정이 세팅되었습니다. 서버 세팅 과정 기록을 위해 글 남겨둡니다.


※ 카페24에서 출시한 클라우드 호스팅을 보고 현재 서비스 받고 있는 가비아보다 더 좋은 조건에 지금 진행하는 프로젝트의 규모와 성격에 꼭 맞는 서비스라 생각되어 옮기게 되었습니다.


모든 세팅을 마치고 모니터 화면을 띄워두었습니다.



screen 을 활용해 모니터링합니다. 기본적으로 아래와 같은 screen 터미널을 사용합니다.


$ screen -list

There are screens on:

        2037.monitor    (Detached)

        19185.log       (Detached)

2 Sockets in /var/run/screen/S-root.



ubuntu 1204 에서는 좀 편했는데 cent 는 좀 어렵더라구요. 

삽질을 시작했습니다.


카페24에서 서버 세팅이 완료된 상태라면 SSH 터미널 서비스 외에 아무런 데몬이 올라가 있지 않은 상태입니다. 당연히 웹서버나 FTP서버는 작동하고 있지않은 상태라는 것이죠.

우선 SSH 접속후 업데이트 부터 했습니다.

yum update

CentOS 5 정도가 설치되어 있는걸로 알고 있습니다. 업데이트가 진행되는 동안 새로운 터미널을 열어 버전 확인 한번 해봅니다.

cat /etc/redhat-release

uname -a

아직 업데이트가 진행되고 있는 중이라 기존에 사용하던 vim 관련 설정들을 세팅해두는 잡일을 합니다.

vimrc

vimrc.local

vimrc.tiny



개발 스택을 php-fpm, nginx, mysql, nodejs 정도로 생각해 두고 셋업에 들어갑니다.

먼저 FTP 서비스를 위해 vsftpd 설치합니다.

yum install vsftpd

vi /etc/vsftpd/vsftpd.conf

/etc/init.d/vsftpd start

ps -ef | grep ftp

그러고 보니 사용자 계정을 안만들었네요.

adduser ***

passwd ***

클라이언트에서 FTP 접속이 잘 되는지 확인해봅니다.

새로운 터미널에서 생성한 사용자 계정으로 로그인 합니다. 그냥 현재 터미널에서 작업하고 싶으면 su - 명령을 사용합니다.

su - ***

사용자 계정으로 서비스할 폴더 등을 만들어 두는 등 잡일을 합니다.

루트 계정으로 돌아와 엔진엑스 설치를 준비합니다. 현재 스테이블 버전 1.2 가 발표되었습니다. 공식 사이트의 설명대로 레포지터리를 추가해 설치하도록 하였습니다.

vim /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/5/$basearch/gpgcheck=0
enabled=1

centos 5 이기 때문에 구문을 위와 같이 수정하여 입력합니다.

작업을 마치고 yum install 합니다.

yum install nginx

vim /etc/nginx/nginx.conf

vim /etc/nginx/conf.d/default.conf

/etc/init.d/nginx start

페이지가 잘 뜨는지 확인해보고 계속 진행합니다.

최신의 php 레포지토리 사용을 위해 아래의 레포지토리를 추가합니다.

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
yum --enablerepo=remi search php-fpm

최신버전이 없어 소스 컴파일합니다. 젠장 ㅡㅡ;

그래도 고물 PC에서 돌리는 것보다 빠르게 컴파일 합니다.

--with-fpm 옵션을 추가해 컴파일합니다. 나중이라도 컴파일 옵션이 빠졌다면 다시 컴파일 하고 메이크 && 메이크 인스톨 해줍니다. 그리고 데몬들 다시 시작하면 잘 작동합니다.

yum install libmcrypt libmcrypt-devel

./configure --enable-fpm --with-gd --with-mhash --with-mcrypt --with-mysql --with-mysqli --with-pdo-mysql --with-curl --with-xmlrpc
make && make install

컴파일, 설치 완료 후 php-fpm 파일이 있는지 확인합니다. /usr/local/sbin/ 에 있습니다.

컴파일된 폴더 안에 sapi/fpm 안에 있는 세팅 파일을 etc/init.d 와 usr/local/etc 로 복사해줍니다.

자세한 내용은 http://mattiasgeniar.be/2011/04/21/guide-running-nginx-1-0-with-php-fpm-5-3-on-centos-5/ 링크를 참고합니다.

/etc/init.d/php-fpm start

아파치를 따로 돌리지 않고 php fastcgi 을 사용하려고 합니다. /etc/nginx/conf.d/default.conf 를 수정합니다. 아래와 같이 추가합니다.

server {
    server_name 도메인;
    root    /home/***/웹폴더;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ @rewrites;
    }

    location @rewrites {
        rewrite ^ /index.php last;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        # With php5-cgi alone:
        fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one

    location ~ /\.ht {
        deny all;
    }
}

엔진엑스를 재시작해줍니다. 간단한 php 파일을 만들어서 테스트해봅니다.

서버 리부팅시 자동으로 시작해야할 스크립트를 chkconfig --list 메뉴를 통해 확인해보고 추가로 등록합니다.

chkconfig php-fpm on


네트워크 트래픽 모니터링을 위해 iftop 도 설치

yum install iftop


자주 사용하는 screen 명령 요약 (스크린 세션 안에서는 CTRL+A 로 명령이 시작합니다)

screen -list : 저장되어 있는 세션 리스트

screen -x : 스크린 세션 접속

ctrl+a d : 스크린 세션 나가기

ctrl+a n, p, SpaceBar : 세션 이동

ctrl+a " : 세션 리스트

ctrl+a S : 창 나누기 (나눈 후 새로운 스크린을 생성해야합니다)

ctrl+a TAB : 창 이동

ctrl+a a : 세션간 이동

ctrl+a c : 새로운 스크린 생성

ctrl+a A : 세션 윈도우 타이틀 지정

생성된 스크린에서 나가려면 로그아웃(ctrl+d) 하면 됩니다

tmux 가 설치되어 있지 않아서 그냥 screen 사용합니다. 뭐 제 입장에서는 둘다 익숙해지면 좋으니 아무거나 사용해도 좋을 듯 합니다.