Изменения MAMP в Apache 'document root' неэффективны

Я обращаюсь за помощью, чтобы найти причину, по которой MAMP не может внести изменения в "корень документа" Apache, и устранить эту проблему. Это второе редактирование оригинальной заявки включает существенную дополнительную информацию, которая может помочь в распознавании решений.

Apache недавно перестал отвечать на изменения в директиве "DocumentRoot" в разделе "основной" конфигурации сервера Apache httpd.conf. Apache продолжает работать хорошо, за исключением того, что он остается в одной из предыдущих настроек DocumentRoot. Буду признателен за помощь в поиске источника этой проблемы и ее устранении.

Я запускаю Apache 2.0.64 в начале 2011 года на MacBookPro с Lion. Для удобства я работаю в MAMP 2.0.5, который включает в себя Apache 2.0.64. Я занимаюсь разработкой нескольких сайтов, расположенных в разных каталогах по разным путям. Для переключения localhost между этими путями и каталогами я обычно использовал последовательность действий MAMP (не MAMP Pro) GUI
"Предпочтения..."> "Apache"> "Корень документа"> "Выбрать..."
переключаться между двумя путями.

Чуть более недели назад некоторые настройки или процессы, стоящие за этим переключателем графического интерфейса, застряли на одном из путей ("путь p", для простоты). Сам графический интерфейс не застрял; он отображает "Корень документа", как если бы он переключался назад и вперед между путем p и путем q. Тем не менее, только сайты под путем p будут работать на localhost / path. Если я переключу настройку MAMP для "корня документа" на путь q, а затем попытаюсь запустить локальный сайт q, q не запустится, даже если он работал нормально до того, как возникла проблема; но любой сайт, доступный через путь p, все еще будет работать.

Оглядываясь за графическим интерфейсом MAMP, "phpinfo" сообщает, что "DOCUMENT_ROOT" изменяется на "путь q" в разделе phpinfo "Среда Apache", а также в "_SERVER("DOCUMENT_ROOT")" в разделе "PHP-переменные". Когда я изменяю настройку MAMP "Document_Root", я могу в режиме реального времени с помощью TextWrangler наблюдать за обновлением настройки в "httpd.conf".

Mac "Activity Monitor" Mac показывает семь запущенных процессов "httpd". Использование "Проверка" показывает, что все они работают в MAMP. При поиске по httpd.conf в Mac "Spotlight" обнаруживается только один файл "httpd.conf", описанный выше.

Соответствующие сообщения об ошибках, доступные через MAMP/logs/apache_error.log, всегда (кроме отметки времени):

- возобновление нормальной работы [вс. апр. 22 12:34:22 2012] [извещение] перехватило SIGTERM, завершение работы [вс. апр. 22 12:34:24 2012] [извещение] дайджест: генерация секрета для дайджест-аутентификации... [вс 22 апреля, 12:34:24 2012] [уведомление] Дайджест: сделано [Вс, апр 22, 12:34:24, 2012] [уведомление] Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.6 настроен - возобновление нормальной работы

Если я правильно понимаю, работающая версия Apache 2.2.21, а не Apache 2.0.64, на которой страница часто задаваемых вопросов MAMP (отображается как вкладка, доступная к веб-экрану, открытому с помощью кнопки "Открыть стартовую страницу" графического интерфейса пользователя), - это установленная версия.

Соответствующие сообщения об ошибках в общем журнале ошибок консоли:

21.04.12 21:40:27.746 [0x0-0xcd0cd].de.appsolute.MAMP: 120421 21:40:27 mysqld_safe mysqld из файла pid /Applications/MAMP/tmp/mysql/mysql.pid завершен 4/21/12 9:40:28.653 PM [0x0-0xcd0cd].de.appsolute.MAMP: Предупреждение: DocumentRoot [/Applications/MAMP/Library/docs/dummy-host2.example.com] не существует 4/21/12 9:40:28.721 PM [0x0-0xcd0cd].de.appsolute.MAMP: 120421 21:40:28 mysqld_safe Ведение журнала в '/Applications/MAMP/logs/mysql_error_log.err'. 21.04.12 21:40:28.871 [0x0-0xcd0cd].de.appsolute.MAMP: 120421 21:40:28 mysqld_safe Запуск демона mysqld с базами данных из /Applications/MAMP/db/mysql 21.04.12 9:40:29.799 PM [0x0-0xcd0cd].de.appsolute.MAMP: Предупреждение: DocumentRoot [/Applications/MAMP/Library/docs/dummy-host2.example.com] не существует

За исключением даты и времени, эти сообщения остаются неизменными при любых изменениях через MAMP в DocumentRoot. Я не могу распознать любую полезную информацию в этих сообщениях.

Незадолго до возникновения этой проблемы я переустановил MAMP, чтобы исправить проблему с сервером MySQL. Пытаясь отладить сервер MySQL в MAMP, я и более опытный специалист по компьютерам также установили MacPorts.

Кажется возможным, что MAMP фактически открывает версию Apache 2.2.21, которая могла быть установлена ​​MacPorts, а не версия 2.0.64, которая предположительно пришла с MAMP 2.0.5; но эта часть MAMP по-прежнему действует так, как будто Apache 2.0.64 является рабочей версией. Если это правда, это может быстро привести к решению, хотя я недостаточно знаю, как работает MAMP или Apache, чтобы выполнить это.

Я широко искал онлайн-советы, протестировал предложение отформатировать WordPress для нескольких пользователей и поиграл с изменением "etc / hosts", которое теперь восстанавливается до значений по умолчанию. Большинство соответствующих веб-сайтов жестко запрограммированы на XHTML, PHP и CSS; некоторые используют WordPress.

Через день после того, как я отправил эту проблему в "Переполнение стека", так как вопрос № 10252067, еще не получив ответа, я добавил более раннюю версию этого запроса в ветку форума MAMP о том, что PHP не работает. Этот пост еще не был опубликован и, возможно, находится на рассмотрении. При более пристальном рассмотрении этой проблемы мне кажется, что часть интерфейса MAMP, которая взаимодействует с httpd.conf, может работать должным образом, и что проблема может быть связана с тем, как httpd читает и интерпретирует настройки в httpd. conf, или как MAMP распознает и взаимодействует между несколькими возможными версиями Apache.

Буду признателен за ваше руководство по устранению этой ошибки при реализации настройки Apache 'DocumentRoot'.

8 ответов

Имел те же симптомы и решил их, обнаружив следующую строку в

/Applications/MAMP/conf/apache/httpd.conf file:

# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

Это было потому, что человек, использующий мой компьютер до меня, настроил MAMP для работы в Zend Framework 2 и настроил виртуальный хост, который переопределяет настройку DocumentRoot. Я прокомментировал эту строку, и теперь DocumentRoot в настройках работает как положено.

Исправление для MAMP, когда изменение Apache "корень документа" неэффективно

  1. Выйти MAMP
  2. Откройте терминал и введите: sudo killall -9 httpd
  3. Перезапустите MAMP

Исправлено для MAMP, когда MySQL не запускается

  1. Выйти MAMP
  2. Откройте терминал и введите: sudo killall -9 mysqld
  3. Перезапустите MAMP

Это старый вопрос, но я сталкиваюсь с этим только сегодня. Я решил это следующим образом:

1) закрыть MAMP

2) открыть "/Applications/MAMP/conf/apache/http.conf" с помощью текстового редактора и проверьте, есть ли что-то вроде:

....

<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs"
ServerName localhost
</VirtualHost>

....

3) замените строку после DocumentRoot новым путем.

В основном вам нужно вручную изменить путь для виртуальных хостов

Опоздал на вечеринку, но хотел отметить, что у меня была похожая проблема. В моем случае я редактировал:

/Applications/MAMP/conf/apache/original/httpd.conf

Когда я должен был редактировать:

/Applications/MAMP/conf/apache/httpd.conf

Довольно глупая ошибка, но...45 минут потрачены впустую на моем конце

Если вы хотите использовать имя / виртуальные хосты вместе с localhostубедитесь, что localhost явно определено в /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf как и любой другой виртуальный хост уже определен.

Проверьте apache/conf/extras/httpd-conf.conf

У меня был неправильный DocumentRoot в

<VirtualHost *:80>
    DocumentRoot /Users/..../..
    ServerName localhost
</VirtualHost>

В моем случае DocumentRoot был неправильным в конфигурации ssl:

       apache/conf/extras/httpd-ssl.conf

потому что я включил HTTPS локально.

Интерфейс MAMP изменяет только корень HTTP.

Я решил проблему с:

  • остановить серверы в MAMP
  • убить все процессы httpd в мониторе активности
  • запускать серверы в MAMP

Это работает для меня до сих пор. Я не могу объяснить, почему это не работает иначе.

Другие вопросы по тегам