Изменения MAMP в корневом каталоге Apache неэффективны

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

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

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

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

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

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

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

-- возобновление нормальной работы [22 апреля 2012 г., 12:34:22] [уведомление] обнаружен SIGTERM, завершение работы [22 апреля 2012 г., 12:34:24] [уведомление] Дайджест: создание секрета для дайджест-аутентификации ... [Вс 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 завершено 21 апреля /12 9:40:28.653 PM [0x0-0xcd0cd].de.appsolute.MAMP: Предупреждение: DocumentRoot [/Applications/MAMP/Library/docs/dummy-host2.example.com] не существует 21.04.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».


person user1347235    schedule 20.04.2012    source источник
comment
ты когда-нибудь в этом разбирался? имею такую же проблему...   -  person ryankeairns    schedule 12.07.2012


Ответы (8)


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

Файл /Applications/MAMP/conf/apache/httpd.conf:

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

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

person smDeveloper    schedule 22.02.2014
comment
Это также оказалось решением моей проблемы. Однако человеком передо мной был я сам 2 года назад. - person Boerema; 27.10.2014
comment
То же самое произошло со мной после обновления MAMP 5, в процессе установки которого были очищены все конфигурации Apache, неизвестные мне. - person Masa Sakano; 20.07.2020

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

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

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

  1. Выйти из MAMP
  2. Откройте терминал и введите: sudo killall -9 mysqld
  3. Перезапустите МАМП
person Zeeshan    schedule 05.02.2013
comment
Ну черт. Исправление корня документа не сработало для меня. Все, что у меня есть, это No matching processes were found. Так что я все еще ищу решение. - person Mike S.; 17.01.2014
comment
Я заметил неизвестные символы в конце списка папок, например Warning: DocumentRoot [/Applications/MAMP/htdocs/fairy/projects\xe2\x80\x9d] does not exist. Может ли это быть проблема? Потому что фактическая запись выглядит так: DocumentRoot "/Applications/MAMP/htdocs/fairy/projects” Если да, то как мне это исправить? - person Mike S.; 17.01.2014

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

1) закрыть МАМП

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

....

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

....

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

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

person obiTheOne    schedule 23.07.2014

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

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

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

person Wieczo    schedule 06.09.2012

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

person martin_adamko    schedule 14.08.2014

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

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

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

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

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

person Damon    schedule 01.06.2015

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

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

<VirtualHost *:80>
    DocumentRoot /Users/..../..
    ServerName localhost
</VirtualHost>
person russellfeeed    schedule 24.10.2015

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

 apache/conf/extras/httpd-ssl.conf

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

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

person umutesen    schedule 24.02.2021