본문 바로가기
컴퓨터관련

한개의 아이피에 여러개의 포트로 가상호스트 설정하기 - Apache 2.4

by 기록이답이다 2019. 3. 1.
반응형

개발을 하다보면 가상호스트를 사용할 일이 많다.


주로 localhost 로 작업한 후 서버에 올리는게 보통인데...

프로젝트가 여러개 일경우 가상호스트가 필요하다.


가상호스트의 종류에는 이름기반 가상호스트와 포트기반 가상호스트가 있다.


이름기반은 하나의 아이피에 도메인1, 도메인2 이런식으로 이름을 지정해 주는것을 말한다.

그런데 이름기반 가상호스트를 사용하기 위해서는 윈도우의 경우 hosts 파일을 수정해야 한다. ( 불편해... )


하지만 포트기반 가상호스트는 아파치 환경설정만 수정해주면 되므로 이름기반보다는 덜 불편하다.


그러면 포트기반 가상호스트를 적용하는 법을 살펴보자


httpd.conf 파일에서 가상호스트 설정 파일을 include 하도록 주석을 처리한다.


# Virtual hosts

#Include conf/extra/httpd-vhosts.conf

위 부분을


# Virtual hosts

Include conf/extra/httpd-vhosts.conf

이렇게 변경한다. ( 맨 앞의 주석만 해제한다 )


그리고 가상호스트 설정파일을 수정한다.

가상호스트 설정파일은 "아파치디렉토리/conf/extra/httpd-vhosts.conf" 파일이다.



httpd-vhosts.conf 파일을 수정한다.


Listen 80

Listen 5050


#NameVirtualHost *:80

#NameVirtualHost *:5050


<VirtualHost *:80>

ServerAdmin webmaster@dummy-host.example.com

DocumentRoot "C:/dev/workspace/php/localhost1"

ServerName localhost

ErrorLog "logs/localhost1-error.log"

CustomLog "logs/localhost1-access.log" common

</VirtualHost>


<VirtualHost *:5050>

ServerAdmin webmaster@dummy-host.example.com

DocumentRoot "C:/dev/workspace/php/localhost2"

ServerName localhost

ErrorLog "logs/localhost2-error.log"

CustomLog "logs/localhost2-access.log" common

</VirtualHost>




위와 같이 가상호스트 설정을 한 후 확인을 해본다.

원하는 결과가 나오지 않았다.



이유는 아파치 2.4 이후부터는 가상호스트 설정에 <directory> 설정을 해주어야 한다.

가상호스트 설정을 다시 수정한다.


Listen 80

Listen 5050


#NameVirtualHost *:80

#NameVirtualHost *:5050


<VirtualHost *:80>

ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot "C:/dev/workspace/php/localhost1"

    ServerName localhost

    ErrorLog "logs/localhost1-error.log"

    CustomLog "logs/localhost1-access.log" common

<Directory "c:/dev/workspace/php/localhost1">

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Require all granted

</Directory>

</VirtualHost>


<VirtualHost *:5050>

ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot "C:/dev/workspace/php/localhost2"

    ServerName localhost

ErrorLog "logs/localhost2-error.log"

    CustomLog "logs/localhost2-access.log" common

<Directory "c:/dev/workspace/php/localhost2">

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Require all granted

</Directory>

</VirtualHost>


설정을 수정후 다시 확인해 본다.




원하는 대로 포트기반 가상호스트 결과가 잘 나온다...









반응형