Apache раньше работал на моей машине, вчера вечером я остановил ее, и теперь я не могу заставить ее работать снова.

У меня есть index.html в /Library/WebServer/Documents , который также установлен как DocumentRoot в /etc/apache2/httpd.conf . В этом файле есть только слово TEST . Там нет ничего другого в каталоге. Я запустил apache с помощью sudo apachectl start , который не выдал сообщение об ошибке.

Тем не менее, на localhost:80 я получаю ошибку соединения. Интересно, что когда я захожу на localhost:8080 , я получаю стандартное сообщение apache «все работает». Это перестает работать, когда я останавливаю apache с помощью sudo apachectl stop . Пробовал это в нескольких браузерах с очисткой кеша, так что проблема не в этом.

Я собрал всю директорию /etc/apache2 для упоминания 8080, безрезультатно. Я начинаю думать, что не запускаю ожидаемую программу или другую версию, настроенную где-то еще. Есть идеи?

1 ответ1

0

Чтобы увидеть, какой файл конфигурации используется, вам нужно увидеть, откуда работает Apache, а затем запустить его с параметром -V чтобы увидеть его параметры конфигурации. Этот однострочник найдет работающий процесс apache и распечатает конфигурацию:

$(ps ax -o comm | grep -m 1 '[a]pache\|[h]ttpd') -V

Расположение файла конфигурации находится в строке D SERVER_CONFIG_FILE . Мой находится по адресу /private/etc/apache2/httpd.conf .

Расположение файла конфигурации задается при компиляции Apache. Однако вы можете изменить это, передав опцию -f Apache при запуске.

Apache в вашей системе, вероятно, запущен launchd. Вы можете найти правильный файл plist используя это:

grep -lRi 'httpd\|apache' /Library/Launch*/ ~/Library/LaunchAgents/

У меня есть plist , который загружает апач в /Library/LaunchDaemons/homebrew.mxcl.httpd22.plist

Чтобы указать другой файл конфигурации, вам нужно отредактировать аргументы программы для передачи опции -f с путем к файлу конфигурации, например

<array>
    <string>/usr/local/opt/httpd22/bin/httpd</string>
    <string>-D</string>
    <string>FOREGROUND</string>
    <string>-f</string>
    <string>/path/to/httpd.conf</string>
  </array>

Перезагрузка будет применять изменения.

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