카페24에서 가상서버호스팅을 받았다. 나는 서버 초보다. 완전초보다. vi 명령어도 esc 누른다음 i, q, qw, w밖에 모른다. 복사 후 붙히기는 마우스로 해결한다. 그런 내가 가상서버호스팅을 받았다. 3년 전에 공부했던 내용은 이미 백지 상태와 다름 없다. 백지 상태에서 나는 다시 서버를 다루고 있다. 완전히 백지는 아닐지 모르겠다. 재생지 정도?

 

■ 도메인과 서버(계정) 연결 하기

3년 전 서버호스팅을 받았을 때는 내 서버에 네임서버를 함께 구축했기 때문에 많이 복잡했다. 잠깐 당시 경험을 풀어 놓자면, 도메인은 호스팅케이알에서 등록했고 서버는 통큰아이였다. 호스팅케이알에 등록한 도메인을 통큰아이 서버에 연결 시키는 일은 생각보다 어렵고도 고단했다.

호스팅케이알 도메인 관리에 호스트 관리가 있다. 

호스트 관리에서 호스트 아이피를 등록하는 부분이 있는데 내가 임대한 서버에 할당 된 고유 주소다. 호스팅 회사에서 임의로 지정해 할당해 준다. 다음은 서버에서 네임서버를 구축하고 가상 호스트까지 여러 수작업을 해야 한다.

http://zibsin.net/113 이 곳에서 네임서버 설정 방법이 설명 돼 있다.

네임서버를 구축 할 때 호스트 설정 이면 DNS가 알아서 내 서버를 탐색해 주겠지 생각했다. 그러나 알아서 되는 건 없었다. 서버는 서버고 도메인은 도메인이다. 도메인에도 호스트 설정을 해 줬어야 했는데 그런 개념 조차 없었다. 그래서 부득이 호스팅케이알 고객센터 담당 직원을 많이 귀찮게 했다. 새벽에도 전화를 받아주는 건 고마웠지만 대단한 스트레스가 아니였을까 싶다. 이메일 상담으론 개인적으로 궁금한 내용들을 질문하면서 답장 안 줘도 된다 했지만 끝까지 친절하게 설명해 준다. 고객센터 직원은 인내심을 보고 채용하는 거 같다.

 

카페24의 가상서버호스팅도 이런 복잡한(?) 과정들이 필요할거라 생각하고 열심히 고민하려고 했는데 뜻밖에 관리 메뉴를 발견하게 됐다.

 

카페24의 호스팅센터는 웹호스팅/가상서버호스팅의 관리 메뉴를 제공해 주고 있다.

☞ 일단 도메인을 서버의 사용자 계정에 연결 해보자. 네임서버를 변경하고 A레코드를 등록하고 서버에 adduser로 사용자 계정을 추가하고 홈페이지 파일들이 들어갈 디렉토리를 만들고 디렉토리에 도메인이 연결 되도록하는 기본적인 작업들이다.

 

 

서비스 사용현황을 보면 [도메인 추가 연결 및 관리] 버튼이 있다. 일단 이곳에서 대표도메인을 내가 보유하고 있는 도메인으로 변경한다.

사용하고자 하는 도메인의 네임서버는 카페24의 네임서버로 등록 돼 있어야 한다. 네임서버의 주소가 다르다면 아래 설명하는 것들은 의미가 없다. 도메인을 카페24에서 등록한게 아니라면 등록한 회사의 홈페이지에서 네임서버를 카페24의 네임서버로 변경해야 한다.

 

네임서버가 카페24로 변경 됐다면 다시 호스팅 관리의 서비스 사용현황에서 [도메인 네임서버(DNS)관리]를 클릭한다.

 

위의 화면에서 +A레코드 추가 버튼을 클릭하면 아래의 아이피와 도메인 이름을 등록하는 화면이 보인다.

아직은 서브도메인을 사용할 것이 아니기 때문에 일단은 IP주소만 입력한다.

 

이제 도메인은 서버까지 도달했다. 서버에서 특정 계정까지 도달하도록 하려면 몇 가지 작업이 더 필요하다.

리눅스에서 사용자를 추가하고 패스워드를 지정하는 명령은 아래처럼 한다.

[root@ ~]adduser wonjustory

wonjustory라는 아이디를 생성한다.

[root@ ~] passwd wonjustory

아이디에 패스워드를 지정한다.

/home이라는 디렉토리에 /home/wonjustory라는 디렉토리가 생성됐다. 보통 홈페이지는 계정의 하위 디렉토리에 넣기 때문에 홈페이지가 들어갈 디렉토리를 더 만든다.

[root@ ~]cd /home/wonjustory

[root@ ~]mkdir www

www라는 디렉토리를 생성한다. 이제 홈페이지 파일들은 www안에 넣게 된다.

하지만 이대로는 안 되고 www라는 디렉토리의 소유권과 접근권한(퍼미션)을 변경해 주어야 한다. 왜냐하면 root 계정에서 생성했기 때문에 이 디렉토리는 root의 소유고 root만 접근 할 수 있게 된다. 리눅스에서 파일 소유권과 접근권한은 매우 중요하다.

[root@ ~]chmod 757 www

[root@ ~]chown wonjustory:wonjustory www

퍼미션과 소유자가 변경 됐다. 이제 www 안에 index.php라는 파일을 임시로 생성한다. index 파일이 없으면 아파치 기본 페이지로 들어가게 된다. ftp로 업로드 하거나 vi로 간단하게 생성한다.

여기까지 했다면 준비는 끝났다. 아파치에서 httpd.conf로 가상 호스트 설정을 해주면 끝이다.

 

■ HTTPD (아파치)

[root@ ~]cd /etc/httpd/conf

[root@ ~]vi httpd.conf

 <VirtualHost *:80>
    ServerAdmin abcde@daum.net
    DocumentRoot /home/wonjustory/www
    ServerName wonjustory.com
    ServerAlias www.wonjustory.com
    ErrorLog logs/wonjustory.com-error_log
    CustomLog logs/wonjustory.com-access_log common
</VirtualHost>

httpd.conf에 대한 설명은 워낙 많기 때문에 중요한 부분만 보자면, DocumentRoot는 위에서 생성했던 사용자 계정의 절대 경로가 된다. ServerName에 설정한 도메인은 호스트에 등록했던 도메인이 된다. ServerName으로 접근하면 DocumentRoot로 연결 된다.

가상 호스트의 개수가 많을 때는 참조 파일을 둬서 <VirtualHost *:80> ~ </VertualHost> 부분만 별도의 파일로 관리한다. 파일명은 보통 httpd-vhosts.conf 이렇게 정하는데 conf.d/ 아래에 넣으면 된다. httpd.conf 내용 중간에 이미 *.conf 파일을 include하는 부분이 있다.

* 각종 Log 파일 경로를 지정했는데 접속 에러나 공격에 의해 로그 파일들이 과하게 커지는 경우 서버가 갑자기 먹통이 되는 원인이 되기도 한다. 있으면 좋지만 없어도 웹서버 가동에는 큰 문제가 되지 않는다.

 

호스트 관리 메뉴가 제공되고 있어서 어렵지 않게 도메인과 홈페이지 연결 작업을 할 수 있다.

 

 

■ mysql 오류

[root@wonjustory usr]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 

mysql을 실행하자 뜻하지 않게 소켓 오류가 생긴다.

mysqld 데몬을 실행해도 마찬가지다.

[root@wonjustory usr]# vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/tmp/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=0

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
socket=/tmp/mysql.sock
default-character-set=utf8

[mysqlid]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8

/etc/my.cnf를 열어 위에 색칠 된 부분을 수정하거나 추가한다. mysql.sock은 /tmp 하위 디렉토리에 있어야 한다. 아래처럼 데몬을 다시 실행한다.

[root@wonjustory usr]# service mysqld restart
mysqld 를 정지 중:  [  OK  ]
mysqld (을)를 시작 중:  [  OK  ] 

 

■ PHP

phpMyAdmin4를 설치해 사용하려고 했더니 php5.2 이상에서만 작동한다고 한다. 그래서 또 PHP 업그레이드를 해야 했다.

CentOS일 경우다.

rpm -Uvh http://mirror.webtatic.com/yum/centos/5/latest.rpm

위의 명령을 실행하면 php를 설치할 준비를 시작한다. 

yum --enablerepo=webtatic install php

이 명령은 php 재설치를 시작한다. 

yum --enablerepo=webtatic update php

이 명령은 php5.3을 설치하면서 기존에 설치 된 파일 중에서 중복 된 부분을 뺀 나머지를 찾아 업그레이드 한다.

 

업그레이드가 완료 된 후에는 service httpd restart를 해줘야 적용된다.

 

지음빌더 블로그

- CentOS에서 PHP5.3 설치하기

- PHP에서 MySQL이 연동 안 됐던 이유

- CentOS에 (APM) Apache+PHP5.3+MySQL 설치하기

댓글을 달아 주세요