본문 바로가기
기타/OSS( open source )

웹 호스팅 Virtual Host 세팅

by Jun_N 2018. 8. 8.

목적 
- 하나의 서버로 여러 계정을 만들었을 때, 계정마다 있는 index.html이라는 웹서버를 각각의 도메인으로 호출



사용자 계정1을 만든 후, 계정 안에 기본 홈페이지 파일(index.html) 을 만들고 도메인1로 웹 서비스 세팅 후 가동을 확인
1) 계정생성
adduser명령으로 testuser1이라는 계정을 만든다. 
미리 관리자 계정으로 접속했으며, 유저에 대한 정보는 아무거나 넣어도 상관없다. 넣기싫다면 엔터. 추가적으로 adduser 뒤 계정이름에 대문자가 아닌 소문자를 사용해야 한다.

2) /etc/passwd파일에 저장이 된다. cat으로 저장이 됐는지 확인.

3) 계정 안에 index.html생성
계정의 디렉토리는 /home/testuser1이다. (참고로 원래 내계정인 heeseok의 디렉토리는 /home/heeseok이다)
testuser1 디렉토리에 들어가서 public_html 디렉토리를 만들고 안에 index.html 파일을 멘트를 넣어 만든다. (public_html 이라는 이름을 사용하는 이유는 userdir 모듈을 이용하기 위함이다.)


4) apache의 모듈 중에 userdir라는 모듈이 있다. 이 모듈을 이용하면 한 서버에 여러 계정이 있을 때,  각각의 index.html 파일들을 <도메인/~사용자계정/> 의 식으로 사이트에 들어갈 수 있다. 이 모듈을 활성화 하기 위해 a2enmod userdir 명령어를 사용한다.
(모듈은 /etc/apache2/mods-available 디렉토리에 들어가면 볼 수 있다.)
 도움링크 (https://httpd.apache.org/docs/2.4/ko/howto/public_html.html)

5) /etc/apache2/mods-available 디렉토리 안에 있는 userdir.conf 파일에 들어가 사용자별 디렉토리 이름 등을 수정할 수 있다. 하지만 난 수정하지않고 public_html로 사용할 것이므로 패스. 
userdir.conf 파일과 userdir.load 파일을 /etc/apache2/mods-enabled 로 복사하거나 링크를 이용해 넣는다.

6) 모든 세팅은 끝났다. 아파치 서버를 재시작한다.

7) localhost/~testuser1 를 웹브라우저에 입력해 확인.





사용자 계정2을 만든 후, 계정 안에 기본 홈페이지 파일(index.html) 을 만들고 도메인2로 웹 서비스 세팅 후 가동을 확인
1) 사용자 계정 1과 마찬가지로 testuser2라는 계정을 만들고 public_html이라는 디렉토리와 그 안에 index.html 파일을 멘트를 넣어 만든다.

2) 이후 아무것도 할 것이 없다. 이미 1을 세팅하면서 userdir 모듈이 활성화 되었기 때문에 바로 확인가능하다. 웹 브라우저에 localhost/~testuser2 를 입력해 확인.

도움링크 (http://darksoulstory.tistory.com/10)

 



 이번 작업을 하면서 정말 삽질을 많이했다. 시행착오로 /etc/apache2/sites-enabled에 test.conf 라는 파일을 만들고 이상한 다큐먼트 루트를 설정해서, apache를 재시작하는 명령이 안됐다. 당황해서 아파치를 삭제하고 다시 설치도 해봤다. 그래도 안돼서 구글링을 했고 덕분에 $apache2ctl configtest 라는 명령으로 잘못된 부분을 알고 수정할 수 있었다.  도움링크 (http://fishpoint.tistory.com/2123)

$apache2ctl configtest명령으로 어떤 부분이 에러인지 알 수 있었다.