Как создать виртуальные хосты в Apache 2 под Mac Os

Хотя я и заядлый приверженец Nginx'a сегодня я расскажу вам как настроить виртуальные хосты в Apach'е на вашем маке. Вдруг вас тоже судьба как и меня занесла в проект где нужно пошаманить с апачем.

На самом деле виртуальные хосты в апаче добавляются так же просто как и в nginx'е. Для начала вам необходимо раскоментить строку отвечяющую за хосты. Для этого открывем файл 

sudo vi /etc/apache2/httpd.conf

Находим строку:

# Virtual hosts

#Include /private/etc/apache2/extra/httpd-vhosts.conf

И расскоменчиваем:

# Virtual hosts

Include /private/etc/apache2/extra/httpd-vhosts.conf

То-же самое делаем со строкой:

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

Теперь смело можете добавлять ваши новые хосты в hosts.conf и настлаждаться работой с вашим локальным веб сервереом.

sudo vi /etc/apache2/extra/httpd-vhosts.conf

Пример хоста:

<VirtualHost *:80>
        ServerName yii.loc
        DocumentRoot /Users/mark/server/yii/web

        <Directory /Users/mark/server/yii/web>
            Options Indexes FollowSymlinks
            AllowOverride All
            Require all granted
        </Directory>

        ErrorLog /Users/mark/server/yii/logs/myhost-error_log
        CustomLog /Users/mark/server/yii/logs/myhost-access_log combined
</VirtualHost>

Как вы могли заметить я прописал пути к моей домашней дерриктории юзера в маке, создал там папку server куди и закинул всю структуру локального сайта всключая логи.

Что бы наш сайт заработал осталось только вписато домен myhos.local в хост фал вашего мака с направлением на локалхост и конечноже перезагрузить апач:

sudo apachectl restart

Скорей всего вы можете столкнуться с ошибкой 403 потому что файлы расположенные в домашней дериктории юзера принадлежать вашему юзеру, а апач работает от имени другого. Что бы дать права на доступ апачу просто примените права 775 к вашей папке

chmod -R 755 /Users/mark/server/myhost

Не забудьте заменить пользователя "mark" на вашего юзера системы.