Настройка виртуальных хостов в Apache под Mac OS X
По умолчанию настройки виртуальных хостов Apache на Mac OS X находятся в файле /etc/apache2/extra/httpd-vhosts.conf
Для начала открываем терминал и переходим в root режим:
sudo su -
Далее редактируем файл конфигураций Apache:
vi /etc/apache2/httpd.conf
Найдите в нем следующую строчку:
#Include /private/etc/apache2/extra/httpd-vhosts.conf
И замените ее на:
Include /private/etc/apache2/vhosts/*.conf
Теперь нам необходимо создать эту папку:
mkdir /etc/apache2/vhosts
cd /etc/apache2/vhosts
Создайте конфигурационный файл виртуального хоста по умолчанию:
vi _default.conf
И добавляем в него:
DocumentRoot "/Library/WebServer/Documents"
Этот файл служит в качестве виртуального хоста по умолчанию. Когда Apache не может найти соответствующий виртуальный хост, он будет использовать первую конфигурацию. Технически этот файл не нужен, поскольку он просто повторяет конфигурации из http.conf. Тем не менее, он обеспечивает локальную настройку сервера.
Создайте файл конфигурации виртуального хоста:
vi site.loc.conf
И добавьте в него следующее:
DocumentRoot "/your/path/"
ServerName site.loc
ErrorLog "/your/path/local-error_log"
CustomLog "/your/path/local-access_log" common
AllowOverride All
Require all granted
Перезагрузим веб - сервер Apache:
apachectl restart
Если у вас возникли какие-нибудь проблемы, попробуйте выполнить команду, которая проверит настройки:
apachectl configtest
Настройка виртуальных хостов
Для того, чтобы у вас заработал сайт в браузере, по пути site.loc необходимо отредактировать файл hosts:
vi /etc/hosts
Добавьте строчку в конце файла. Имя хоста должно соответствовать ServerName в настройках Apache:
127.0.0.1 site.loc
Чтобы очистить локальный кеш DNS, выполните следующую команду:
dscacheutil -flushcache
Теперь можно запрашивать наш сайт по http://site.loc
Проверить ошибки в настройках сервера можно с помощью команды:
apachectl configtest
И немного о правах
При запросе вашего сайта, вы можете получить в ответ 403 Forbidden, вероятно, это проблема с правами на чтение. Проще говоря, пользователь Apache не имеет на это прав.
Выполните следующую команду, чтобы это исправить:
chmod 755 /your/path/