macos: Після запуску apache порт і DocumentRoot помиляються


0

Раніше Apache працював на моїй машині, минулої ночі я зупинив її, і тепер я не можу змусити її знову працювати.

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

І все-таки localhost:80я отримую помилку підключення. Цікаво, що коли я заходжу localhost:8080, я отримую стандартне повідомлення apache "Це працює". Це перестає працювати, коли я зупиняю апачі sudo apachectl stop. Спробував це в декількох браузерах, очистивши кеш, тому це не проблема.

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


Чи є в них файли конфігурації apache /usr/local/etc/?
D Schlachter

@DSchlachter так! тому звідки походить конфігурація. Це означає, що у мене встановлено apache двічі? Як сказати йому використовувати конфігурацію з /etc/apache2/httpd.conf?
1nterference

Відповіді:


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 у вашій системі, ймовірно, запущений. Ви можете знайти потрібний 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>

Перезавантаження застосує зміни.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.