본문 바로가기

스쿨호스팅 가상서버호스팅(VPS), phpMyAdmin 계정을 따로 만들어서 쉽게 DB(데이터베이스)를 관리하자

728x90
반응형

카페24 가상서버호스팅(절약형)을 사용하던 중에 스쿨호스팅의 가상서버호스팅(절약형)은 어떤지 궁금해졌다. 여러가지 서비스 품질을 비교하는 차원에서 일단 계정 하나를 만들어 실험을 해 보기로 했다. 사실은 카페24에서, 물론 가장 저렴한 절약형이긴 하지만 phpMyAdmin3.5 버전 이상은 속도가 너무 느려서 도저히 사용 할 수 없었다. 어쩔 수 없이 구버전만 사용해 왔는데 스쿨호스팅에서는 최신 버전의 phpMyAdmin을 사용 할 수 있는지 지금부터 셋팅 시작해 보기로 했다.

SSH2로 서버에 접속해 원격 제어를 시작 한다. 카페24도 그렇지만 SSH2를 사용한 다는 거, 포트 22번을 사용한다. 언제부턴가 SSH1이나 Telnet 프로토콜은 거의 사용하지 않는 듯 하다. 암튼.

로그인 했다면 아파치 설정 파일에 들어가 보자.

]# cd /etc/httpd

디렉토리 목록이 있다. ./conf 안에 httpd(아파치 웹서버) 설정 파일들이 들어 있다. 나머지는 하이퍼링크다. 보안상 중요하긴 하다. 즉, 건드려서 이로울 게 없다는 뜻이기도 하다. ./conf 안에 "httpd.conf"라는 파일이 있는지 확인 해보고 있다면 다행이지만 없다면 생성해야 한다. 일일이 타이핑 할 수 없으니 인터넷 검색으로 쉽게 구할 수 있는 파일을 복사해서 설정 파일을 만들어야 한다.

리눅스 명령은 매우 많다. 서버 관리자라면 당연히 그 많은 명령어들을 능숙하게 사용 할 수 있어야 하지만 리눅스만 공부하는데 몇 개월에서 1년 이상은 필요하다. 리눅스(유닉스)는 전공자에게 늘 어려운 운영체제이긴 하다.

다만 비 전문가라 할지라도 기본적인 명령들은 사용 할 수 있어야 한다. cd, mk, mkdir, mv, cp, ll, ls, cat, vi 등등 가장 많이 사용하는 기초적인 명령어들은 능숙하게 사용 할 수 있어야 한다. 유닉스 기본 편집기인 vi도 자주 사용하는 단축키와 에디터 명령어가 있는데 사용법을 익혀야 한다.

MS-DOS 세대라면 별 거부감 없이 쉽게 다룰 수 있지만 윈도우 세대라면 매우 어려울 수 있다. 하지만 웹 기술을 다루는 사람이라면 TEXT 기반의 명령어에 익숙해지는 것도 중요하다.

내가 서버에서 사용 할 대표 도메인은 www.ziumsoft.com이 될 것이다. 그리고 여러 개의 계정을 두고 홈페이지 몇 개를 구동 할 것이다. 물론 프로그래밍 작업에 필요한 서브 도메인도 만들어 사용 할 것이다. 지금 하려고 하는 건 서브 도메인을(mydb) 등록하고 그곳에 phpMyAdmin 프로그램을 업로드 할 것이다. 그렇게 한다면 이 서버에 있는 수많은 계정들 마다 phpMyAdmin을 설치 하지 않고 mydb.ziumsoft.com으로 접속해 해당 계정의 DB 정보로 로그인 해서 사용 할 수 있게 된다.

phps.kr(스쿨호스팅)에 로그인 해서 "가상서버호스팅관리"에 접속하면 서버 관리 메뉴들을 볼 수 있다. 아래 서비스 관리에 보면 도메인추가가 있다.

 

도메인 관리 페이지는 비교적 단순하다. ziumsoft.com은 호스팅 신청 할 때 입력한 도메인으로 기본적으로 대표도메인이 된다. 추가 할 도메인이 없다면 창을 닫으면 된다.

카페24에서는 DNS 관리 페이지를 따로 제공해 주었다. 그래서 A레코드를 관리한다던가 SPF 관리가 가능했다. 스쿨호스팅에서는 그 부분이 없다. SPF는 인터넷진흥원에서 관리하는 화이트 도메인 등록에 꼭 필요한데 이 메뉴를 제공해 주지 않는다면 zone 파일을 직접 수정해야 하는 건지, 일단 웹메일이 정상적으로 발송 된다면 문제 될 게 없지만 이 부분은 나중에 다시 살펴 봐야 할 것 같다.

■ 사용자를 추가 한다.

]# adduser mydb

mydb라는 사용자를 추가 한다.

]# passwd mydb

New password:
Retype new password:

mydb라는 사용자의 비밀번호를 설정 한다.

■ 홈페이지 파일을 업로드 할 수 있는 mydb 계정의 home 디렉토리를 관리한다.

]# cd /home

/home 디렉토리 안에 mydb라는 디렉토리가 생성 됐다. 사용자를 추가하면(adduser) 사용자가 사용 할 수 있는 저장공간을 할당 해 준다. 우린 아파치라는 웹서버 프로그램을 이용해 저 디렉토리를 홈페이지를 올릴 수 있는 home 디렉토리로 설정 할 것이다.

drwxr-xrwx 이런 문자들은 디렉토리의 퍼미션을 나타낸다. 앞에 d는 디렉토리라는 의미이고 그 뒤에 wxr은 접근 권한이다. 3개씩 나눠서 앞에는 root, 뒤에는 group, 마지막에는 누구나가 해당 되는 퍼미션이다.

r-x는 읽고 실행이 가능하다는 뜻이다. rwx는 읽고 쓰고 실행이 모두 가능하다는 뜻이다. 우린 이걸 숫자로 표시 한다. r은 4, w는 2, x는 1이다. 다 합치면 7이 된다. 7은 읽고 쓰고 실행이 가능하다는 것이고 4와 1을 더한 5는 읽기와 실행이 가능하다는 것이다.

퍼미션이 757이면 관리자는(root)는 읽고쓰고실행이 가능하고 group은 읽고 실행만 가능하고 누구나는 읽고쓰고실행이 가능하다는 뜻이 된다. 그래서 우린 홈페이지가 업로드 될 home 디렉토리의 퍼미션을 보통 757로 설정 한다. 왜냐하면 웹프로그램이 없는 홈페이지는 찾아보기 어렵기 때문에 실행 권한을 줘야 한다. 또 첨부파일 등을 업로드 할 필요도 있기 때문에 홈페이지에 접근하는 누구나에게 w 쓰기 권한도 주어야 한다.

만약 디렉토리 퍼미션이 drwxr-xrwx처럼 되어 있지 않다면 퍼미션을 757로 바꿔 주자.

]# chmod 757 mydb

 

drwxr-xrwx 3 root root 4096 Feb 16 12:58 mydb

만약 디렉토리 정보가 이렇게 되어 있다면 소유자를 바꿔 줘야 한다. 사용자를 추가 할 때는 root 권한으로 하기 때문에 간혹 사용자의 디렉토리(mydb)의 소유자가 root로 되어 있을 수 있다.

]# chown mydb:mydb mydb

계정이 생겼다. 그리고 사용자가 홈페이지를 업로드 할 수 있는 디렉토리도 생겼다. 디렉토리 mydb에 홈페이지 파일을 직접 업로드 할 수 있지만 보통 www나 public_html 라는 서브 디렉토리를 하나 더 생성하고 그 위에 파일을 업로드 한다. 왜냐하면 /에는 다른 환경 설정 파일이나 백업 자료 등을 올릴 수 있고 따로 용도가 있기 때문이다.

필자는 개인적으로 www라는 디렉토리를 선호 한다. public_html은 길어서 타이핑 하기가 귀찮다.

]# cd mydb

mydb]# mkdir www

mydb]# chown mydb:mydb www

www의 소유자를 mydb로 변경한다.

mydb]# chmod 757 www

www의 퍼미션을 757로 변경한다. 실제로 홈페이지 파일들은 www에 업로드 된다.

리눅스에서 할 일은 이제 끝.

다음은 아파치 설정을 해야 한다. 아파치는 리눅스가 설치 된 컴퓨터에 웹서버 기능을 제공해 주는 응용프로그램이다. 윈도우에도 도깨비라던가 윈도우용 아파치라던가 여러가지 웹서버 응용프로그램이 있는데 리눅스도 아파치 외에도 nginx 같은 웹서버 프로그램이 몇 개 더 있다.

■ httpd.conf와 httpd-vhosts.conf 설정과 생성

/etc/httpd/conf

위의 경로에 접속하면 아래의 파일 목록이 보인다. 

-rw-r--r-- 1 root root   979  9월 25 14:48 httpd-vhosts.conf
-rw-r--r-- 1 root root 33463  8월  9  2013 httpd.conf

httpd-vhosts.conf는 필자가 생성한 파일이니 없다고 긴장하지 말자. 이건 만들어야 한다.

]# cat httpd.conf

이 명령을 실행하면 파일 내용이 화면에 출력 되는데 워낙 빨리 스크롤 되기 때문에 한 번에 보기는 어렵다. 일단 파일 하단을 보면 아래와 같은 내용이 있다.

 

NameVirturalHost *:80

앞에 #를 제거하면 주석 해제가 된다. 가상 서버를 설정해서 여러 계정을 두고 계정마다 도메인을 연결 해 홈페이지 여러 개를 한 서버에서 운영 할 것이다. 웹호스팅의 원리(?)이다.

include conf/httpd-vhosts.conf 

<VirtualHost *:80>
...
</VirtualHost>

가상 서버를 설정하는 부분만 따로 빼서 httpd-vhosts.conf에 저장한다. 그리고 include 명령을 이용해 이 파일을 httpd.conf에서 불러온다. httpd.conf에 모두 작성해도 되지만 이렇게 하면 관리가 편하다. 훨씬 편하다.

? 그런데 왜 /conf라는 서브 디렉토리에서 include 할 까? 분명 httpd.conf와 httpd-vhosts.conf는 같은 경로에 들어 있다. 이유는 아파치가 httpd.conf를 참조 할 때 httpd/에서 불러오기 때문이다. 중요한 건 아니지만 참고해 두면 나중에 요긴 할 수 있다.

1. httpd.conf 수정 하기

]# vi httpd.conf

vi는 리눅스에서 기본으로 제공해주는 문서 편집기를 실행하는 명령이다. 키보드의 아래 키(↓)를 이용해 페이지를 하단으로 스크롤 해보자. 한참 내려와야 한다. 그리고 #NameVirtualHost *:80 이 부분을 만났다면 알파벳 i를 눌러 보자. i는 문서를 편집 모드로 바꾸겠다는 단축키다.

#를 제거 하자.

그리고 하단에 include conf/httpd-vhosts.conf를 추가 한다. 그리고 ESC 키를 누른다. 편집 모드가 해제 된다. 그리고 :wq를 입력하고 엔터. 문서를 저장하고 편집을 종료 하겠다는 뜻이다.

2. httpd-vhosts.conf 생성하기

]# vi httpd-vhosts.conf
vi는 문서를 편집하지만 없는 문서 이름을 넣게 되면 새 문서를 생성한다. 키보드 i를 이용해 편집 모드로 변환 하고 내용을 작성한다.

<Directory "/home/*/www">
    AllowOverride None
    Options none
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    DocumentRoot /home/mydb/www
    ServerName mydb.ziumsoft.com
</VirtualHost>

위의 내용을 넣자.

]# service httpd restart

아파치 데몬을 재실행한다. 여기까지 하면 이제 계정 설정은 얼추 마무리 됐다. 설정을 변경 한 다음에는 아파치 데몬을 재실행 해 줘야 적용 된다.

그리고 브라우저에서 mydb.ziumsoft.com에 접속 해 보니 이런!!! 제대로 접속 안 된다. 설정 중에 뭔가 잘 못 된 게 있는 모양이다. 아파치 첫 화면으로 이동 된다는 건 index 파일을 제대로 불러오지 못했거나 설정에 오류가 있는 것이다.

]# vi httpd.conf

설명 파일 내용을 다시 살펴 보기로 했다.

아니나 다를까. DirectoryIndex에 php와 htm 확장자 설정이 없다.

DirctoryIndex index.php index.html index.htm

이렇게 내용을 바꿔 준다.

그리고 service httpd restart 하면 끝.

mydb.ziumsoft.com으로 접속 한 화면. 잘 된다. 이 과정을 숙지 한다면 다음부터는 어렵지 않게 계정을 만들고 새로운 홈페이지를 운영 할 수 있다.

다음에 새 계정을 추가 할 때는 리눅스에서 adduser, passwd로 계정을 추가하고 /home에 생성된 디렉토리의 소유권과 퍼미션을 변경 해 주고 /etc/httpd/conf/httpd-vhosts.conf의 설정 부분을 추가 하면 된다.

계정 추가해서 도메인 연결까지는 끝!!!

와우~ 속도 괜춘함~~~~ ^^

728x90
반응형