본문 바로가기

Web Server(APM)

apache2 웹 호스팅 Virtual Host setting

web hosting service란?  웹서버 공간을 자체적으로 운영하기 위해서는 독자적인 서버, 전용선, 네트워크 장비, 여러 프로그램 등이 필요하다.  웹서버의 구축 및 운영이 어려운 개인이나 기업을 대상 으로 서버 구축 장비가 완비되어있는 상태의 웹 서버의 일정 공간을 임대 및 관리를 해 주는 가상 서비스를 웹 호스팅 서비스라고 한다.

웹호스팅, 서버호스팅, 클라우드 호스팅

우리가 하게 될 작업은 웹 호스팅이다. virtual machine 구동 중인 하나의 apache2 server에서 server의 일부 공간을 임대하여 같은 ip에 여러가지의 doamin 이름이 mapping되는 name based virtual host를 setting할 것이다.

domain based virtual host 동작 그림 

 

virtual host setting을 위한 큰 그림을 그려보자

1. 사용자 계정을 만든다. (apache2 root 권한으로)

   adduser [username]  (원하는 virtual host의 수만큼 만들기)

2. name-based virtual host setting (apache2 root 권한으로)

  sites-availabe/[filename].conf (원하는 virtual host의 수만큼 만들기)

  a2ensite  [filename].conf

  vim /etc/apache2/apache2.conf 파일 수정

  /etc/hosts 파일 수정  (실제 web hosting service에서는 필요없는 과정이다.)

  service apache2 restart

3. database 분양하기 (mysql root 권한으로)

   mysql -u root

   create database [databsename];

   grant all privileges on [databasename].* to [userid]@[host] identified by '[password]'; 

4. 각 사용자 계정에 homepage용 directory밑에 wordpress setting.  (user 계정으로)

   su - [username]

   mkdir html 

   wget [다운로드 주소]

   tar xvfz [압축풀파일이름] 

5. 3개의 doamin 별 작동 test

6. 다른 word press thema 적용

 

1.사용자 계정을 만든다. (apache2 root 권한으로)

1-1)  /etc/apache2/apache2.conf 파일을 수정하여 일반 user가 webpage의 file을 변경 및 관리 할 수 있도록 /home/*/html의 directory에 default main host directory와 같은 권한을 준다.

/etc/apache2/apache2.conf

1-2) user생성하기 : 각 virtual host webpage root를 관리할 user계정을 생성한다. 여기서는 user01, user02, user03 총 3개의 user account를 생성하겠다.

adduser [username]

2. name-based virtual host setting (apache2 root 권한으로)

2-1) sites-availabe/[filename].conf (원하는 virtual host의 수만큼 만들기)

각 virtual host web page마다 root directory와 domain name을 다르게 사용해야 한다. 각 virtual host user account마다 conf 파일을 생성하고, DocumentRoot, ServerName을 수정한다.

2-2) a2ensite  [filename].conf

/etc/apache2/sites-available : 웹서비스를 할 컨텐츠 경로 및 권한 등의 설정 값이 있으며 디폴트 설정값으로 000-default.conf 파일이 있다. 그 외 웹서비스를 할 컨텐츠마다 *.conf로 명명된 설정된 파일을 생성해주면 된다.
/etc/apache2/sites-enable : sites-available에 설정된 파일들 중 실제로 활성화된 것들은 심볼릭 링크로 연결된 파일들이 있는 곳이다. , a2ensite / a2dissite 등의 명령어를 통해 수정된다.

apache server의 설정파일인 apache2.conf에서 sites-enabled만 추가하므로 conf 파일을 만들고 난뒤 a2ensite 명령어를 통해 sites-enable에 symbolic link를 설정해주어야 한다.

2-3) vim /etc/apache2/apache2.conf 파일 수정

/etc/apache2/의 directory에 virtual host들의 정보를 담고 있는, virtualhost.conf 파일을 생성하고, VirtualHost의 ServerName, ServerAlias, DocumentRoot에 관한 정보를 적어준다. 정해진 형식이 있으므로 꼭 아래와 같은 형식을 지켜야 한다. (000-defaul.conf 파일에 적혀진 default file에 대한 정보도 virtualhost.conf 파일에 추가해주어야 한다. 왜 그럴까?) 

apache2.conf 파일에 들어가 virtualhost.conf 파일이 virtualhost의 정보를 담고 있는 virtualhost.conf 파일을 포함하도록 명령을 추가해준다.

2-4) /etc/hosts 파일 수정  (실제 web hosting service에서는 필요없는 과정이다.)

실제로 웹 호스팅 Virtual Hosting할 때에는 Domain name을 사서 DNS 서버에 등록해야 하지만, 우리는 가상으로 web hosting server를 운영하고 있다고 가정하고 있다. DNS 서비스를 이용하는 대신, web ser/etc directory에 있는 host파일을 수정하여 computer를 속이자. 즉, 실제의 DNS 서비스에 등록된 domain-ip를 이용하는 대신, hosts 파일에 domain-ip를 등록하여 사용하는 것이다.

::

2-5) service apache2 restart

위에서 수정된 conf 파일들을 apache2 server에 적용해주기 위해 apache2 server를 restart하자.

 

3. database 분양하기 (mysql root 권한으로)

3-1) 각 virtual host webpage에서 사용될 mysql의 database를 분양하기 위해, mysql의 root 계정으로 들어가 각 user를 위한 database를 setting해주자. 

mysql -u root : mysql root 계정으로

create database [databsename]; : database 만들기

grant all privileges on [databasename].* to [userid]@[host] identified by '[password]'; : database 권한 설정

 

4. 각 사용자 계정에 homepage용 directory밑에 wordpress setting.  (user 계정으로)

4-1) su - [username], mkdir html

user account가 수정할 수 있는 directory여야 하므로 root 계정이 아닌, user account로 각자의 root directory에 각 virtaul host의 webpage root directory인 html directory를 만들자. 

 4-2)wget [다운로드 주소], tar xvfz [압축풀파일이름]

각 user account의 root directory 아래에 wordpress를 다운로드 및 설치하자. webpage를 통해 wordpress에 들어가 wordpress 설정도 완료하자.

 

5. 3개의 doamin 별 작동 test

 

 

6. 다른 word press thema 적용

wordpress에서 기본적으로 제공하는 thema를 적용해보았다.

 

 

https://www.blueweb.co.kr/hosting/webhosting_intro.html (웹 호스팅이란?)
https://www.google.com/search?biw=892&bih=873&tbm=isch&sa=1&ei=UZbVXL2tJ8nemAWMhJTQDA&q=web+hosting+service+%EB%9E%80&oq=web+hosting+service+%EB%9E%80&gs_l=img.3...11735.13223..14145...0.0..0.126.459.0j4......1....1..gws-wiz-img.......0i19j0i30i19.5n4KUDFSMb4#imgrc=st-NR4jJ2-dttM: (웹호스팅, 서버 호스팅, 클라우드 차이점은?)
https://sacstory.tistory.com/entry/Apache2-%EC%84%A4%EC%A0%95-%EA%B4%80%EB%A0%A8 (데비안 apache2 설정)