Beautiful CSS

Setting Up Virtual Hosts with XAMPP on Mac

Mac에서 XAMPP로 가상 호스트 설정하기

Visual Design and Art School Logo Academy of Art University Logo
Related :

교육 카드 개설 현황

Channels :
Units :
Draft :

사이드바 2

Meta Info:

  • Oct 11, 2016
  • Hyunhwa Jeong
  • 1,631 Views
  • No comments

Table of Contents

Mac에서 XAMPP로 가상 호스트 설정하기

이 게시물은 2017년 9월 26일 수정판입니다.

xampp_virtual_hosts_set_up_mac_os_x_el_capitan

Mac에서 XAMPP로 가상 호스트 설정하기

이 글은 개인적인 용도로 작성되었다가, 약간의 살을 붙여 배포하게 되었습니다. 자신의 컴퓨터를 서버로 사용하면서, 여러 개의 사이트를 운영하거나, 혹은 여러 가상 개발환경을 구축할 때 필요한 Vitual Host(가상 호스트) 설정에 대한 방법입니다.

이 글의 요점은, XAMPP와 Mac의 최신 운영체제(엘 캐피탄이나 시에라 따위)에서 가상 호스트를 설정하는 방법을 안내 함과 동시에, 빈번히 일어나는 에러(403 따위)를 해결하는데 있습니다. 이 글은 Setting Up Virtual Hosts For XAMPP On Mac OS X (El Capitan) 포스트를 참고로 작성되었습니다.

이 섹션에서 다루게 될 파일들의 종류와 위치는 다음과 같습니다.

  1. /Applications/XAMPP/xamppfiles/etc/httpd.conf
  2. /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf
  3. /etc/hosts

httpd.conf

XAMPP의 Apache 서버에서 가상 호스트 기능을 활성화 시키는 것이 시작입니다. httpd.conf 파일을 엽니다. 이 파일의 위치는 앞에 서술했습니다.

문서에서 아래와 같은 부분을 찾아, Include 글자 앞의 해쉬(#)를 삭제하고 저장합니다. # 표시가 붙어 있으면 주석으로 여겨 실행되지 않으므로, 이 심볼을 삭제해서 해당 구문을 실행 가능한 상태로 만드는 것입니다.

# Virtual hosts
Include etc/extra/httpd-vhosts.conf

httpd-vhosts.conf

한 개의 서버에서 여러 개의 사이트를 운영하기 위한 설정입니다. 원하는 서버 이름(도메인, IP주소 따위)을 설정하고, 해당 서버의 홈 디렉토리를 설정해 주면 됩니다. 하나의 웹 사이트는 1개의 서버이름과 1개의 홈 디렉토리로 구성됩니다.

httpd-vhosts.conf 파일을 열면, 해쉬 심볼(#)이 붙은 기본 예제 구문들이 있습니다. 이 구문들은 그냥 놔두고 가장 아랫 줄에 다음과 같이 입력합니다.

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
    <Directory "/Applications/XAMPP/xamppfiles/htdocs">
        Options Indexes FollowSymLinks Includes execCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

이 부분은, 브라우저 주소창에 localhost라고 입력할 경우, 기존처럼 XAMPP의 홈 디렉토리로 이동하기 위한 구문입니다. 경우에 따라(특히 대부분은) 4번부터 8번 줄의 코드는 필요 없을 수도 있지만, 만일에 대비하여 그대로 두고, 이 구문에서는 더 이상 건드릴 부분이 없으므로 아래에서 다시 설명합니다.

이제 새로 추가할 웹 사이트에 대한 설정 구문입니다. 위의 코드를 그대로 복사해서 아래에 붙이되, ServerNameDocumentRoot를 변경합니다.

<VirtualHost *:80>
    ServerName dev.localhost
    DocumentRoot "/Users/Hyunhwa/Desktop/dev"
    <Directory "/Users/Hyunhwa/Desktop/dev">
        Options Indexes FollowSymLinks Includes execCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

ServerName에는 주소창에 기입할 때 사용하고자 하는 이름을 적고, DocumentRoot에는 홈 디렉토리의 절대 경로를 적습니다. 위 예문에서는 Hyunhwa라는 사용자의 데스크탑에 위치한 dev 디렉토리가 홈이 됩니다. 따라서, 여러분도 DocumentRoot에 기재한 위치에 실제 같은 이름의 디렉토리를 만들어 놓아야 하고, 그 안에는 index.html과 같은 초기 파일도 함께 만들어 두세요.

앞서 잠깐 거론했던 4번부터 8번까지의 코드는, XAMPP의 공식 메뉴얼대로만 구문을 작성했을 때 발생할 수 있는 403 에러를 방지하기 위한 부분입니다. (언제나 느끼지만, XAMPP의 매뉴얼은 기기별 테스트가 적어 신뢰도가 많이 떨어집니다).


hosts 파일

기본적인 가상 호스트 설정은 끝났지만, 지정한 서버이름을 로컬 머신에서 사용하고자 한다면 Mac OS의 hosts 파일에 등록을 해주어야 합니다. 만일, 이미 구입 해 둔 도메인 이름이 있고, 해당 도메인이 여러분의 머신 IP에 연결되어 있다면 이 단계는 필요 없습니다. 이 단계는, 외부에서 접속하는 것이 아니라 내부 네트워크 혹은 로컬 머신에서만 사용할 가상의 서버이름을 사용할 때 필요한 부분입니다. 외부 접속에 대해서는 추후 다시 설명합니다.

hosts 파일을 여는 방법은 크게 두 가지입니다.

  • 파인더의 메뉴에서 이동폴더로 이동을 통해 프롬프트 창에 /etc를 입력해서 이동하여 파일을 찾습니다. 이 경우, hosts 파일의 권한은 admin에 있으므로, 정보 입수를 통해 권한을 변경하고, 작성이 끝나면 다시 권한을 돌려 놓아야 하는 매우 불편한 단점이 있습니다. 그래도 터미널 사용이 익숙하지 않은 경우에는 이 방법으로 합니다.
  • 터미널로 접근하는 방법이 있습니다. 터미널에서 sudo nano /etc/hosts로 파일을 엽니다. 이때 사용되는 에디터는 nano이며, sudo 명령을 썼기 때문에 별도의 권한 변경없이 수정이 가능합니다.

터미널의 에디터를 통해 열린 hosts 파일

키보드의 화살표 키를 눌러가며 커서를 맨 아랫 줄로 이동시킨 후, o(알파벳)를 눌러 아래 칸에 아래 예문과 같이 원하는 도메인명을 추가합니다. 그리고, Control + o와 리턴 키로 저장하고, Control + x로 에디터를 닫습니다.

127.0.0.1 dev.localhost

마지막으로, 터미널에서 dscacheutil -flushcache 명령으로 캐쉬를 초기화 해주고, XAMPP의 아파치를 재시동 합니다. 그리고 웹 브라우저에서 http://dev.localhost 처럼 여러분이 지정한 서버 이름으로 접근해 봅니다.


403 Error

이 단계에서 403 에러가 난다면, 다시한번 /Applications/XAMPP/xamppfiles/etc/httpd.conf 파일을 열고, 아래와 같은 부분을 찾습니다.

# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon

user 부분의 daemon을, 여러분이 자기 컴퓨터에 로그인 할 때 사용하는 사용자명으로 바꿉니다. 예를들면, User Hyunhwa 처럼 말이죠. Group의 daemon은 staff로 바꿔 Group staff와 같이 변경합니다. 그리고 다시 아파치를 재시동합니다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments