Подтвердить что ты не робот

Как создать виртуальные хосты в 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

Но что делать дальше?

4b9b3361

Ответ 1

В то время как googling, я нашел эти шаги, чтобы легко создавать виртуальные хосты на MAMP:

  • Откройте консоль на Mac и отредактируйте файл хостов, как этот

    sudo vim/etc/hosts

Откроется системный файл, содержащий следующую строку:

127.0.0.1    localhost

добавить имя хоста после локального хоста:

127.0.0.1    localhost mysite.loc

нажмите ESC, затем: wq! для перезаписывания и закрытия файла.

  1. Теперь перейдите в свой каталог 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. Здесь вы определяете виртуальные хосты.

  1. В нижней части страницы представлены два примера того, как определять виртуальные хосты в 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

  1. Разрешить виртуальные хосты

    Перейдите в Приложения> 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
    
  2. Разрешить переопределение SymLink

    Найдите эту строку в том же файле httpd.conf.

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride None
    </Directory>
    

    изменить None на All.

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
    
  3. Добавьте путь виртуального хоста

    Перейдите в Приложения> MAMP> conf> apache> extra> httpd-vhosts.conf

    добавьте виртуальный хост с именем сервера и корнем документа, как показано ниже

    <VirtualHost *:80>
      ServerName example.dev
      DocumentRoot "/path/to/directory"
    </VirtualHost>
    
  4. Разрешить компьютеру распознавать ваш локальный домен

    Откройте терминал и введите

    sudo pico /etc/hosts
    

    затем добавьте свой домен

    127.0.0.1 example.dev
    
  5. Перезагрузите ваш сервер.

    Если 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.