Настройка виртуальных хостов на macos High Sierra 10.13 в Apache
- Разрешить настройку vhosts из файла конфигурации Apache httpd.conf
- Отредактируйте файл vhosts.conf
- Сопоставьте ваш IP-адрес с localhost
- Перезапустите Apache
- Потеря Localhost
- Перезапустите Apache
- Найдите своего пользователя и группу
- Перезапустите Apache
Настроить виртуальные хосты в Apache на MacOS High Sierra и OSX сразу после того, как ваша локальная среда веб-разработки будет запущена - сначала включите и запустите веб-разработку, включая Apache, PHP и MySQL на macOS, после этого MacOS High Sierra Apache / PHP / MySQL руководство здесь если необходимо.
Процесс настройки виртуальных хостов проще в терминале, используя nano или vi с sudo или как пользователь root , или вы можете визуальный редактор GUI, как BBEdit который позволяет получить доступ к каталогу / private / etc , нажав «Показать все» в открытом диалоговом окне.
Разрешить настройку vhosts из файла конфигурации Apache httpd.conf
Откройте httpd.conf
sudo nano /etc/apache2/httpd.conf
Ищите vhosts и раскомментируйте строку включения
# Виртуальные хосты включают /private/etc/apache2/extra/httpd-vhosts.conf
Отредактируйте файл vhosts.conf
Откройте этот файл для добавления в виртуальный хост.
sudo nano /etc/apache2/extra/httpd-vhosts.conf
Домен примера в файле дается в формате, необходимом для добавления в дополнительные домены, просто следуйте этому, чтобы создать новый виртуальный хост:
<VirtualHost *: 80> ServerAdmin [электронная почта защищена] DocumentRoot "/usr/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log" CustomLog "/ private / var /log/apache2/dummy-host2.example.com-access_log "common </ VirtualHost>
Мы можем взять этот пример и расширить его, если, например, вам нужен домен с именем apple.com , вы можете скопировать существующий текстовый блок и отредактировать в соответствии с требованиями:
<VirtualHost *: 80> ServerName apple.com ServerAlias www.apple.com DocumentRoot "/ Users / USERNAME / Sites / apple" ErrorLog "/private/var/log/apache2/apple.com-error_log" CustomLog "/ private / var /log/apache2/apple.com-access_log "common ServerAdmin [электронная почта защищена] </ VirtualHost>
Таким образом, в приведенном выше примере создается vhost для apple.com, а корень документа находится в папке « Сайты ». В текстовом блоке выше, который я также добавил в некоторые файлы журнала, нужно изменить имя пользователя и домен корневого каталога документа. имя, чтобы удовлетворить ваши потребности. Завершите и сохраните файл.
Теперь вам также необходимо сопоставить IP-адрес с локальным хостом.
Сопоставьте ваш IP-адрес с localhost
sudo nano / etc / hosts
Добавьте домен и псевдоним www для разрешения адреса локального хоста.
127.0.0.1 apple.com www.apple.com
Перезапустите Apache
перезапуск sudo apachectl
Проверьте свой локальный домен Vhost в браузере
Потеря Localhost
Одно замечание, касающееся виртуальных хостов, заключается в том, что после настройки вы теряете свой старый корень документа, ранее находившийся в / Library / WebServer / Documents или доступный в браузере по адресу http: // localhost , в результате вы получаете 403 Forbidden Error. Но ~ / username root документа все еще совместимо.
Чтобы обойти это, вам нужно добавить vhost для localhost и объявить этот vhost перед любым другим, в том же файле:
sudo nano /etc/apache2/extra/httpd-vhosts.conf
Добавить в:
<VirtualHost *: 80> имя_сервера localhost DocumentRoot / Library / WebServer / Documents / </ VirtualHost>
Перезапустите Apache
перезапуск sudo apachectl
Одно из разочарований использования папки Users / username / Sites для vhosts - проблемы с разрешениями для таких вещей, как обновления и аутентификация.
Это потому, что пользователь веб-сервера по умолчанию, который запускает httpd , известен как _www, который не будет пользователем вашей локальной учетной записи. Если ваша машина используется только вами и веб-сервер будет работать только под вашей учетной записью, вы можете сменить пользователя.
Найдите своего пользователя и группу
В Терминале используйте команду id, чтобы увидеть ваше имя пользователя и группу
Я бы
Вы получите кучу групп пользователей, вам нужны ваш основной пользовательский uid и имена gid группы
uid = 502 (администратор) gid = 20 (персонал)
Измените это обратно в /etc/apache2/httpd.conf
Перезапустите Apache
перезапуск sudo apachectl
Перезапустите Apache, и теперь вы используете httpd в качестве локальной учетной записи.