Как создать виртуальные хосты в MAMP?
Я новичок в Mac, но долгое время использовал Ubuntu для разработки. Я знаю, как создавать виртуальные хосты в Ubuntu, но понятия не имею о Mac. Я создал запись hosts
, как показано ниже:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost mysite.loc
255.255.255.255 broadcasthost
::1 localhost
Но что делать дальше?
Ответы
Ответ 1
В то время как googling, я нашел эти шаги, чтобы легко создавать виртуальные хосты на MAMP:
Откроется системный файл, содержащий следующую строку:
127.0.0.1 localhost
добавить имя хоста после локального хоста:
127.0.0.1 localhost mysite.loc
нажмите ESC, затем: wq! для перезаписывания и закрытия файла.
- Теперь перейдите в свой каталог MAMP и откройте файл конфигурации apache, расположенный в приложении /MAMP/conf/apache/httpd.conf, в любом текстовом редакторе и найдите следующие строки:
# Virtual Hosts
# Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Удалите знак хеша (фунта) с начала строки, которая начинается с Include
# Virtual Hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Сохраните файл, а затем откройте Приложения /MAMP/conf/apache/extra/httpd -vhosts.conf. Здесь вы определяете виртуальные хосты.
- В нижней части страницы представлены два примера того, как определять виртуальные хосты в Apache. Они выглядят так:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/Applications/MAMP/Library/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
Отредактируйте оба примера. Виртуальные хосты переопределяют существующий локальный хост, поэтому первый должен восстановить локальный хост. Отредактируйте второй для виртуального хоста, который вы хотите добавить. Требуются только директивы DocumentRoot и ServerName. Чтобы добавить виртуальный хост для mysite, отредактированные определения должны выглядеть так:
<VirtualHost *:80>
DocumentRoot /Applications/MAMP/htdocs
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/username/Sites/mysite"
ServerName mysite.loc
</VirtualHost>
Предполагается, что вы хотите найти файлы для mysite в папке Sites. Замените "имя пользователя" во втором определении на свое собственное имя пользователя Mac. Если вы хотите сохранить файлы в другом месте, соответствующим образом отредактируйте значение DocumentRoot.
Если вы хотите создать более одного виртуального хоста, скопируйте одно из определений и отредактируйте его соответствующим образом.
Сохраните все файлы, которые вы отредактировали, и перезапустите серверы на панели управления MAMP. Теперь вы должны иметь доступ к виртуальному хосту со следующим URL-адресом: http://mysite.loc/.
Enjoy..!!
Ответ 2
В моей конфигурации в MAMP отвечал только первый виртуальный хост.
После нескольких часов поиска я основал инструкцию для решения проблемы (перед перечислением определений виртуальных хостов):
NameVirtualHost *:80
Теперь мои 3 виртуальных хоста работают!
Ответ 3
-
Разрешить виртуальные хосты
Перейдите в Приложения> MAMP> conf> apache> httpd.conf
Найдите эту строку:
# Virtual hosts
#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Раскомментируйте код, удалив хеш-символ.
# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
-
Разрешить переопределение SymLink
Найдите эту строку в том же файле httpd.conf
.
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
изменить None на All.
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
-
Добавьте путь виртуального хоста
Перейдите в Приложения> MAMP> conf> apache> extra> httpd-vhosts.conf
добавьте виртуальный хост с именем сервера и корнем документа, как показано ниже
<VirtualHost *:80>
ServerName example.dev
DocumentRoot "/path/to/directory"
</VirtualHost>
-
Разрешить компьютеру распознавать ваш локальный домен
Откройте терминал и введите
sudo pico /etc/hosts
затем добавьте свой домен
127.0.0.1 example.dev
-
Перезагрузите ваш сервер.
Если URL показывает ошибку в Chrome, попробуйте Safari
Ответ 4
Недавно я перешел с XAMP на MAMP на MAC. Я пытался настроить свои последние виртуальные хосты, но номер порта MAMP 8888 был исключен из обычной работы.
Наконец я нашел решение. Вы можете изменить порт прослушивания и имя сервера в httpd.conf, как показано в следующем сообщении: https://www.taniarascia.com/setting-up-virtual-hosts/
Ответ 5
Добавление к ответу Ритеша
Возможно, вы также захотите добавить конфигурацию каталога в ваш httpd.conf, аналогичную той, которая уже существует, но для вашего корневого каталога документов вашего нового сервера.
Например:
<Directory "/Users/username/Sites/mysite">
Options All
AllowOverride All
Order allow,deny
Allow from all
XSendFilePath "/Users/username/Sites/mysite"
</Directory>
Ответ 6
Я следовал этому посту, как рекомендовано szatti1489, и он работал для меня: https://www.taniarascia.com/setting-up-virtual-hosts/
Однако стоит упомянуть пару моментов:
- Эта строка еще не существовала в моем файле httpd.conf, мне пришлось добавить ее:
Include/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
- Мне пришлось использовать окончание домена
.test
, а не .dev
для моего VirtualHost ServerName. Пост упоминает об этом, но затем продолжает использовать .dev
. Судя по всему, Chrome не поддерживал домен .dev
заканчивающийся после 2017 года, хотя у меня он не работал ни в Firefox, ни в Safari.