Настройка виртуальных хостов Apache в macOS

Настройка виртуальных хостов Apache в macOS

В данной статье я расскажу, как добавить виртуальные хосты в Apache.

Виртуальные хосты предназначены для того, чтобы создавать несколько сайтов на одном сервере. Фактически каждый виртуальный хост представляет собой отдельный сайт, со своим адресом и директорией, где размещаются его файлы.

После установки Apache создается один виртуальный хост с именем localhost. Вы можете открыть его в браузере по адресу http://localhost. Директория, в которой размещаются файлы данного сайта /Library/WebServer/Documents.

Есть несколько способов для добавления своих хостов в Apache. Можно прописать информацию о них в одном файле, а можно создать для каждого хоста свой отдельный конфигурационный файл с соответсвующим именем. Я буду использовать второй способ.

Файлы с настройками хостов мы будем размещать в одной директории /private/etc/apache2/vhosts. Файлы будут иметь имена вида mysite.local.conf.

Подключаем vhosts

Сначала нам нужно отредактировать конфигурационный файл Apache. Необходимо добавить в него директиву, которая будет подключать директорию, в которой мы будем создавать конфигурационные файлы хостов.

Откройте файл для редактирования, для этого выполните в терминале команду:

sudo nano /etc/apache2/httpd.conf

Найдите в файле строку #Include /private/etc/apache2/extra/httpd-vhosts.conf.

Под этой строкой добавьте новую строку:

Include /private/etc/apache2/vhosts/*.conf

Сохраните изменения и закройте файл. Чтобы закрыть файл и сохранить изменения, нажмите Ctrl+X, затем введите Y и нажмите Enter.

Настройка виртуальных хостов в Apache

Мы добавили директиву, которая говорит о том, что Apache должен подключать все файлы с расширением .conf из директории /private/etc/apache2/vhosts.

Настраиваем виртуальные хосты

Создадим директорию /private/etc/apache2/vhosts, которую мы добавили в кофигурацию Apache на предыдущем шаге. Чтобы создать директорию выполните в терминале команду:

sudo mkdir /private/etc/apache2/vhosts

Перейдем в эту директорию:

cd /private/etc/apache2/vhosts

 

Создадим конфигурационный файл _default.conf. В нем мы пропишем конфигурацию виртуального сервера по умолчанию. Создайте новый файл, выполнив в терминале:

sudo nano _default.conf

Введите следующую конфигурацию:

<VirtualHost *:80>
   DocumentRoot "/Library/WebServer/Documents"
</VirtualHost>

Сохраните и закройте файл.

 

Теперь создадим конфигурацию для нашего виртуального хоста (сайта). Для примера мы будем создавать сайт с адресом mysite.local, а файлы сайта будем размещать в домашней директории в каталоге mysite (полный путь будет иметь вид /Users/Yury/mysite, вместо Yury должно быть ваше имя пользователя).

Выполните в терминале:

sudo nano mysite.local.conf

Введите:

<VirtualHost *:80>
   DocumentRoot "/Users/Yury/mysite"
   ServerName mysite.local
   ErrorLog "/private/var/log/apache2/mysite.local-error_log"
   CustomLog "/private/var/log/apache2/mysite.local-access_log" common
   <Directory "/Users/Yury/mysite">
      AllowOverride All
      Require all granted
   </Directory>
</VirtualHost>

В конфигурации мы указали директорию (/Users/Yury/mysite), в которой располагаются файлы нашего сайта. Задали адрес сайта mysite.local. Указали, где будут храниться лог файлы с ошибками и информацией о доступе к сайту.

Перезапустите Apache:

sudo apachectl restart

Прежде, чем наш сайт станет доступен по адресу http://mysite.local необходимо добавить информацию о нем в файл /etc/hosts.

Редактирование /etc/hosts

В файле /etc/hosts прописывается соответсвие IP адреса и текстовый адрес хоста (что-то вроде локального DNS).

Нам нужно добавить наш адрес mysite.local. Для этого откройте файл /etc/hosts:

sudo nano /etc/hosts

И добавьте в файл строку:

127.0.0.1  mysite.local

Редактирование файла /etc/hosts в macOS

Настраиваем права доступа

Иногда требуется выставить правильные права доступа на директорию, в которой хранятся файлы сайта. Если этого не сделать, то при доступе к сайту мы получим ошибку 403 Forbidden. Такую же ошибку мы получим, если директории не существует.

В нашем случае нам нужно установить права доступа на директорию /Users/Yury/mysite. Для этого выполните в терминале команду:

chmod 755 /Users/Yury/mysite

Проверка работы

Теперь наберите в браузере адрес сайта: http://mysite.local

Если все пройдет успешно, то вы увидете ваш сайт.

В случае каких-либо ошибок можно просмотреть логи в файле /private/var/log/apache2/mysite.local-error_log

21.10.2016