1

проблема

Мне нужно настроить некоторые записи VirtualHost для сервера MAMP, который я установил на своем Mac. Вкратце, вместо использования http://localhost:8888/dkbtherapy/index.html я хочу использовать http://l.dkbtherapy.com . Однако, с конфигурацией, которую я сделал, это не работает.

Конфигурация VirtualHost

В папке /Applications/MAMP/conf/Apache я изменил файл httpd.conf и добавил конфигурацию VirtualHost :

<VirtualHost *:8888>
  DocumentRoot /Applications/MAMP/htdocs/dkbtherapy
  ServerName l.dkbtherapy.com
</VirtualHost>

так что следует настроить для него маршрутизацию (подумал я). Затем я изменил свой файл hosts и добавил это:

127.0.0.1:8888  l.dkbtherapy.com

но когда я l.dkbtherapy.com в Safari, я получаю:

Safari не может найти сервер.

Теперь, после внесения изменений, я перезагрузил сервер Apache, но я не перезагрузил свой Mac. Хотя я не думаю, что мне нужно перезагрузить мой Mac. Что я упустил в вышеуказанной конфигурации?

ПРИМЕЧАНИЕ: после внесения изменений http://localhost:8888/dkbtherapy/index.html теперь тоже не работает, я получаю 404 с этим сообщением:

Запрашиваемый URL /dkbtherapy/index.php не найден на этом сервере.

РЕДАКТИРОВАТЬ: после просмотра моего окна Windows, где я настроил это, и он работает, я заметил, что пропустил строку конфигурации - он появился - поэтому я добавил это к тому же на Mac:

NameVirtualHost *:8888

РЕДАКТИРОВАТЬ, ОТНОСЯЩИЕСЯ К http://localhost:8888/dkbtherapy/index.html: когда я просматриваю журнал ошибок для Apache, я вижу эту ошибку, когда пытаюсь перейти по этому пути:

[Пт, 31 мая 11:23:41 2013] [ошибка] [клиент :: 1] Файл не существует: /Applications /MAMP /htdocs /dkbtherapy /dkbtherapy

поэтому он почему-то считает, что dkbtherapy - это абсолютный корень сервера, как он выглядит - как мне это удалось?

1 ответ1

1

Итак, вы определили /Applications/MAMP/htdocs/dkbtherapy как DocumentRoot для виртуального хоста, что означает, что этот каталог отображается на URL 127.0.0.1:8888/ - поэтому, когда вы посещаете 127.0.0.1:8888/dkbtherapy/index.html , Apache отображает это на /Applications/MAMP/htdocs/dkbtherapy/dkbtherapy/index.html , который не существует, поэтому вы видите ошибку в журнале.

У вас есть два варианта. Одним из них является изменение значения DocumentRoot на /Applications/MAMP/htdocs/ , что приведет к тому, что URL-адрес .../dkbtherapy будет указывать туда, куда вы хотите.

Другой вариант, и, на мой взгляд, предпочтительнее, будет просто удалить /dkbtherapy из вашего URL и вместо этого посетить, например, http://127.0.0.1:8888/index.html . (Я говорю, что это предпочтительнее, потому что, вероятно, у сайта, когда он работает, будет собственное доменное имя, и его URL не должны содержать /dkbtherapy/ . Если это так, и учитывая, что всегда предпочтительно, чтобы среда разработки была максимально приближена к рабочей среде, то второй вариант ближе к получению этого результата и поэтому лучше первого.)

Еще одно замечание относительно вашего файла /etc/hosts : вы не можете указать номер порта в этом файле, только IP-адрес. Произошла ошибка "Host not found", поскольку стек TCP не может проанализировать запись и поэтому игнорирует ее. Следующее будет работать:

127.0.0.1      l.dkbtherapy.com

С этим изменением, а также с ранее описанным изменением в DocumentRoot, http://l.dkbtherapy.com:8888 должен попасть на главную страницу вашего сайта.

(Кроме того, вам, вероятно, не нужна строка NameVirtualHost, если вы на самом деле не используете виртуальный хостинг на основе имен, что не похоже на то, как это происходит сейчас. Вероятно, ничего не помешает оставить его там, пока вы не приступите к фактической настройке виртуальных хостов на основе имен, но его удаление также не должно иметь значения для поведения Apache.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .