가상호스트로 웹 호스팅 설정, CMS 세팅
자 지난번에 새로운 계정을 만드는 방법에 대해서 알아봤지요?
(기억이 안 나시거나 못 봤다면 아래 링크를 참고해주세요!)
<https://21800180oss2019.blogspot.com/2019/05/virtual-host.html>
그러면 계정을 만드는 방법인 adduser 사용법과 useradd를 사용할 줄 안다는 전제 하에서 이 글을 작성하겠습니다!
CMS는 블로그나 게시판이라고 보면 편합니다. Contents Management System이라고 하며, 이 서비스로 유명한 국내 CMS는 Xpress engine, KimsQ 등등이 있고, 해외에서는 우리가 다룰 Wordpress, Drupal 그리고 Joomla가 있죠!
일단은 지난번에는 가상호스팅에 대해서 준비 활동으로 유저를 더하는 방법만 배웠다고 봐도 무관합니다. 그러면 이제 가상호스팅에 대해서 배워보도록 하죠.
2단계가 꽤나 많은 스텝들이 들어가는데, 이것만 잘 하면 끝난다고 봐도 무방하니 잘 따라오기를 바랍니다.
(기억이 안 나시거나 못 봤다면 아래 링크를 참고해주세요!)
<https://21800180oss2019.blogspot.com/2019/05/virtual-host.html>
그러면 계정을 만드는 방법인 adduser 사용법과 useradd를 사용할 줄 안다는 전제 하에서 이 글을 작성하겠습니다!
CMS는 블로그나 게시판이라고 보면 편합니다. Contents Management System이라고 하며, 이 서비스로 유명한 국내 CMS는 Xpress engine, KimsQ 등등이 있고, 해외에서는 우리가 다룰 Wordpress, Drupal 그리고 Joomla가 있죠!
일단은 지난번에는 가상호스팅에 대해서 준비 활동으로 유저를 더하는 방법만 배웠다고 봐도 무관합니다. 그러면 이제 가상호스팅에 대해서 배워보도록 하죠.
1. 가상호스트(Virtual Host)란...?
일단 호스팅의 의미는 서버 컴퓨터의 전체 혹은 일부를 이용할 수 있도록 임대해주는 서비스를 말하는 겁니다. 만약에 우리가 인터넷 서버 하나를 만들고 우리가 계속 운영할려면 24시간 계속 컴퓨터가 돌아가야겠죠? 그렇지만 이게 말로는 쉽지 현실적으로는 힘듭니다. 그래서 업체에게 서버를 임대받는 것을 호스팅이라고 봐도 무관합니다.
자 그러면 이제 가상호스트에 대해서 알아봅시다.
가상 호스트는 하나의 서버에서 한 개의 사이트(Main Host)외 다른 여러개의 웹 사이트를 서비스 할 수 있도록 하는 겁니다. 그러니깐 서버는 하나지만 유저에 따라서 각각의 웹 사이트들을 보여주는 겁니다.
아래 사진에서 웹 호스팅 서비스가 가상호스트 원리랑 비슷하다고 보시면 편합니다.
둘이 비슷한 것 같지만 잘 보시면 서버호스팅은 단독으로 사용하는 서버이지만 웹호스팅은 다수의 사용자가 한 서버를 사용하고 있습니다. 우리가 구현할 가상호스트는 웹 호스팅 서비스처럼 한 컴퓨터 갖고 있는 localhost 서버를 가지고 다수의 홈페이지를 만들 것이므로 제가 웹 호스팅 서비스랑 비슷하다고 볼 수 있다한 것입니다.
자 이제 가상호스트는 크게 두 가지 방법을 볼 수 있습니다.
- Name-Based Virtual Host (각각 도메인 이름마다 다른 웹 사이트를 보여주는 방식)
- IP-Based Virtual Host (IP 뒤에 유저 정보를 붙여서 보내면 유저 정보에 맞는 웹 사이트를 보여주는 방식)
우리는 여기서 Name-Based Virtual Host 방법을 사용해서 Virtual Host를 구현해볼 겁니다!
2. Virtual Host Setup
일단 크게 우리가 뭘 해야할 지를 알아볼까요?
- 계정을 만든다.
- 도메인 이름으로 구분하는 Name-Based Virtual Host를 세팅한다.
- 각 사용자 계정에 홈페이지용 디렉토리 (우리는 html이라고 합시다.) 밑에 Wordpress 세팅
- 작동 테스트
- 차별화를 만들려고 워드프레스 테마까지 적용해보기 (추가 활동으로 해봅시다!)
크게 보면 이렇게 나눌 수 있네요. 일단 계정을 만드는 방법은 위에 링크에서 전부 설명했으니 이미 알고 있다는 전제에서 시작하겠습니다.
그래도 굳이 설명하자면... 계정을 adduser <username> 을 통해서 하나 만듭니다.
이걸로 1단계가 끝이 났습니다. 저는 아래 사진과 같이 adduser를 통해서 user00을 만들었습니다! (저는 user00를 기준으로 설명하겠습니다.)
그러고 su <username>으로 유저를 바꿔서 /home/<username>에
- mkdir html
을 통해서 디렉토리를 먼저 만듭시다.
2-2 Name-Based Virtual Host 세팅해보기!
<제일 중요!: 일단 sudo su - root해서 root로 작업해주시기를 바랍니다. 그냥 유저로 작업해야 할 때에는 따로 언급하겠습니다!>
1. 일단 /etc/apache2/sites-available에 가서 000-default.conf를
- cp 000-default.conf <원하는 파일 이름 (그래도 이해하기 쉽게 그냥 유저이름으로 저장하는걸 추천드립니다.)>
이렇게 일단 원하는 이름으로 복사+붙여넣기 해줍시다. 그 다음에 파일을 열어서 파일에 있는 DocumentRoot를 /home/<username>/html로 세팅해 주시고 원래 없었던 ServerName과 ServerAlias를 작성해줍시다. 저는 아래와 같이 했습니다!
아래 사진처럼 이렇게 테마를 고를 수 있습니다.
일단 ServerName은 지난번에 우리가 APM 및 Wordpress를 설치하면서 이게 도메인 이름을 지정하는 거라고 알 것입니다. 그러면 ServerAlias는 무엇인지 궁금할 텐데, 그냥 단축키처럼 다른 이름으로 입력해도 이 사이트로 들어오게 하는 겁니다.
저 같은 경우는 user00.com을 ServerName으로 했지만 www.user00.com으로 입력해도 같은 사이트로 들어오게 설정했습니다.
2. 그리고 vim /etc/apache2/apache2.conf 파일을 수정합시다. 그래서 아래와 같이 /home/<username>/html에 권한을 주면 됩니다.
자 여기까지 했으면
- a2ensite <복붙했던 conf파일 이름>
을 통해서 웹 서비스를 활성화 시켜봅시다. (비활성화 할려면 a2ensite 대신에 a2dissite를 사용하시면 됩니다.)
3. 그러고 이제 vim /etc/apache2/virtualhost.conf라는 파일을 생성해서 virtual host들의 정보를 담아줍니다. 아래 사진처럼 말이죠!
그러고 이제 다시 apache2.conf 파일에 들어가서 Include /etc/apache2/virtualhost.conf라는 줄을 입력해주면 virtualhost.conf 내의 정보들과 연결이 됩니다.
4. 이제는 vim /etc/hosts를 통해서 hosts 파일을 건드릴 건데, 실제 웹 호스팅 할 때에는 건드리지 않습니다.
실제로는 도메인 이름을 구매해서 DNS에 등록해야 하지만 우리는 웹 호스팅 서버 자체를 운영하고 있다는 전제 하에서 이를 하는 것이라 그냥 hosts파일을 건드려서 비슷하게 구현만 해볼 겁니다.
그러면 지난번에 localhost를 jun.com으로 지정해준 것처럼 똑같이 localhost의 ip주소를 복사 한 후에 이를 user00.com으로 등록시켜주면 되겠죠?
자 이정도 했으면은 그냥 service apache2 restart로 수정했던 내용들을 받아들이게 합시다!
5. 이제는 mysql -u root를 통해서 데이타베이스들을 생성해 볼 것입니다.
일단 mysql -u root를 통해서 mysql root계정으로 들어갑니다.
그 이후에 create database <name>;으로 데이타베이스를 하나 생성하고
grant all privileges on <name>.* to <username>@<host (우리는 localhost라고 하면 됩니다.)> identified by '<password>';로 우리가 만든 계정에 데이타베이스에 접근할 수 있는 권한을 줍시다!
이게 2단계의 끝입니다.
6. 이제 우리는 다시 일반 유저로 (제 입장에서는 su user00을 통해서) 들어가서 작업해야 합니다.
일단 html폴더 까지 간 후에 wget <주소>를 통해서 wordpress를 다운 받은 후에 tar xvfz<파일명>으로 압축을 풉시다.
이제 우리가 쓴 서버이름/wordpress (저 같은 경우는 user00.com/wordpress)를 브라우저를 통해서 들어가면 지난번에 했던 Wordpress 설정창이 나올 것입니다. 설정하는 방법은 아래 링크에 정리를 해놓았으므로 모르면 읽어보면 됩니다.
이렇게 3단계가 끝이 났네요. 2단계가 어렵지 나머지 단계는 이렇게 쉽답니다!
7. 일단 테마를 선택해볼까요? 아래 사진에서 붓을 눌러준 후에 theme을 누르면
아래 사진처럼 이렇게 테마를 고를 수 있습니다.
이렇게 5단계가 끝났습니다. (5단계부터 했던 이유는 이게 굳이 필요한 작업은 아니기도 하고 만약 하더라도 확인하기 전에 이를 세팅하는게 덜 귀찮을 거에요!)
8. 이제 확인해봅시다. user00.com 말고도 kimj.com 그리고 test.com도 생성해서 각자 다른 테마를 입혀보았습니다. 아래 보면 결과는 이러합니다.
이걸로 이번 글을 마치겠습니다.
Comments
Post a Comment