아파치는 맥에 포함되어 있지만, 기본적으로 활성화 되어 있지 않다.
활성화 하는 방법은 시스템 환경설정 - 공유 에서 "웹 공유" 를 체크하면 된다. 그런데 본인꺼 (Mountain Lion)에는 보이지 않는다. 그렇다면 터미널을 이용하면 된다. 아니.. 처음부터 터미널만 이용하면 될 것 같다.
1. 아파치 활성화
- 터미널에서
sudo apachectl start
- 브라우저에서 http://localhost/ 를 열어서, It works! 라는 글이 나오면 성공.
- 기본 로컬호스트는 사용자 폴더의 Sites 폴더를 가르킨다. 간혹, /Library/WebServer/Documents 로 되어있는 경우도 있다. 이는 아파치 설정파일을 보면 된다능. 만약 그런 경우 사용자 폴더의 Sites 로 루트를 변경하고 싶다면, httpd.conf (/etc/apache2/)파일을 열어 2군데를 수정한다. 아래 예시처럼 DocumentRoot 라는 부분과 그 살짝 아래 부분에 경로를 바꿔준다.
2. 가상호스트 이름 추가하기
- cd / 로 가장 상위 폴더로 이동
- sudo nano /etc/hosts 로 호스트 파일을 연다.
- 원하는 도메인을 새로운 행에 추가한다. 예) 127.0.0.1 test.local
3. 가상 호스트에 해당하는 폴더 만들기
아래와 같이 가상호스트의 홈으로 지정하려는 폴더를 만들거나 기존 폴더를 활용한다. 여기서는 Sites 폴더 아래 새로운 폴더를 만든다. 그리고 index.html 파일을 만든다.
cd ~/Sites
mkdir test.local
cd test.local
echo "this is test.local" > index.html
4. 가상 호스트 설정 만들기
- 위에서 만든 폴더로 가상 도메인이 설정되도록 해야 한다. /etc/apache2/users/ 폴더에 자신의 계정과 같은 파일이 존재해야 한다.
- sudo nano /etc/apache2/users/brownsoo.conf 를 치면 아래 내용이 기본으로 있다.(없다면 그냥 만든다. brownsoo 는 내 계정이름이다)
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
NameVirtualHost *:80
<Directory "/Users/brownsoo/Sites/">
Options Indexes MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerName test.local
DocumentRoot /Users/brownsoo/Sites/test.local
</VirtualHost>
sudo apachectl graceful
업데이트 사항
10.9 Mavericks 부터 가상호스트 설정을 별도 파일로 관리하는 것으로 바뀐듯 하다. 여기를 참고하기 바란다. 요약하자면,,- 아파치 설정파일을 열어 아래 주석을 풀어준다.
Include /private/etc/apache2/extra/httpd-vhosts.conf
- 가상호스트 설정 파일 (/etc/apache2/extra/httpd-vhosts.conf)을 열어 아래 내용처럼 추가한다.
<VirtualHost *:80>
ServerName test.local
DocumentRoot "/Users/brownsoo/Sites/test.local"
<Directory "/Users/brownsoo/Sites/test.local">
Options Indexes MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
* 이제 필요한 만큼 사이트를 추가해서 사용하면 된다능~
PHP 활성화 하기
1. php 활성화를 위해 아파치 설정파일을 연다. sudo nano /etc/apache2/httpd.conf
2. LoadModule php5_module이란 글로 시작하는 부분을 찾아서 # 을 제거해준다.
3. 아파치를 재시작한다.
4. 테스트 php 파일을 작성해서 테스트 해보자.
cd ~/Sites/test.local
echo "<?php phpinfo(); ?>" > index.php
맥에 PHP 까지 기본으로 있다니, 정말 좋다. 그리고 SSI 도 있다니, 위 사이트를 참고하기 바란다. 우홋!
참고 : http://www.studiotips.net/docs/tips_sql/mysql/phpmyadmin.html
SSI 설정하기
SSI 를 활성화 시켜야 일반적인 웹사이트를 볼 수 있더라구요. 결과적으로 아래 방법까지 해놔야 플래시 임베딩도 잘되고,, 스크립트도 잘 돌아간다.
아파치 설정파일 /etc/apache2/httpd.conf 을 열어서 mime_module 부근에 있는 아래 문장을 주석해제한다.
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
그리고 사용자 설정파일 (/etc/apache2/users/brownsoo.conf) 을 열어서 아래처럼 내용 추가한다.
NameVirtualHost *:80
Options Indexes MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html
AddType application/x-httpd-php .html
ServerName test.local
DocumentRoot /Users/username/Sites/test.local
* Mavericks 이후 버전이라면, 설정파일(/etc/apache2/extra/httpd-vhosts.conf)에서 이렇게 되겠다.<VirtualHost *:80>
ServerName test.local
DocumentRoot "/Users/brownsoo/Sites/test.local"
<Directory "/Users/brownsoo/Sites/test.local">
Options Indexes MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html
AddType application/x-httpd-php .html
</Directory>
</VirtualHost>
서브 디렉토리 접근하기
제로보드를 설치해보려고 압축을 풀었는데, 접근이 제한되어 있어서 안된다능.. 터미널에서 접근권한을 설정하는 방법을 검색해보고 해봤지만 여전히 안 되었다. 해결 방법은 FollowSymLinks 를 추가해야 했다. 사용자 설정 파일을 열어서 Directory 태그 안에 추가하자.
Options Indexes MultiViews FollowSymLinks
요세미티 버전이상이라면, 이것도 추가한다.
Require all granted
아래 사이트들에 자세히 설명되어 있다.
http://www.456bereastreet.com/archive/201104/apache_with_virtual_hosts_php_and_ssi_on_mac_os_x_106/
Add custom hostname to Apache on OSX 10.9 Mavericks