#macos #apache #homebrew
#macos #apache #homebrew
Вопрос:
Я обновил версию macOS до 11 Big Sur и не могу использовать apache от brew вместо встроенной версии.
Что я сделал:
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
brew intall httpd
Когда я пытаюсь запустить установленный httpd, он говорит, что apache запущен
==> Successfully started httpd (label: homebrew.mxcl.httpd)
но когда я запускаю brew services
command, я вижу, что httpd не запущен (и http://localhost:8080 не работает).
sergeylyskov@MacBook-Pro-Sergey ~ % brew services
Name Status User Plist
httpd error sergeylyskov /Users/sergeylyskov/Library/LaunchAgents/homebrew.mxcl.httpd.plist
php@7.3 stopped
php@7.4 stopped
postgresql@12 stopped
PS Я хочу использовать версию brew, потому что кажется, что сборка в apache неправильно работает с модулями php (в нем не отображаются расширения xdebug и imagick phpinfo()
)
Любой совет?
Комментарии:
1. У меня такая же проблема. Есть какие-нибудь успехи в ее решении?
2. @WawaLoo к сожалению, прогресса в этом нет, поэтому я сейчас использую docker
3. Я обнаружил, что установка имени сервера в httpd.conf вызывала эту ошибку. Если вы оставите комментарий к имени сервера, он просто работает. Если вам нужны виртуальные хосты, и вы хотите использовать localhost, то вам также нужно создать vhost для localhost.
Ответ №1:
Я попытался удалить, а затем переустановить httpd, но изначально это не сработало. Когда вы удаляете, brew НЕ удаляет /usr/local/etc/httpd
каталог конфигурации (что разумно, потому что у вас может быть много вещей, настроенных там и не сохраненных в резервном копировании). Однако эти файлы конфигурации вполне могут быть устаревшими (или настроенными) таким образом, что делают их несовместимыми с последней версией httpd, что приводит к сбою. Итак, я сделал следующее:
brew services stop httpd
brew uninstall httpd
mv /usr/local/etc/httpd /usr/local/etc/httpd-old
brew install httpd
brew services start httpd
Это заставило его снова работать со свежими конфигурационными файлами; Теперь я могу скопировать любые конкретные детали конфигурации из httpd-old в новый каталог httpd.
Также обратите внимание: по умолчанию httpd обслуживает из /usr/local/var/www
. Процесс удаления-переустановки не влияет на этот каталог, поэтому необходимо переделать только ваши конфигурационные файлы.
Комментарии:
1. Я делал аналогичные действия несколько дней назад, и да, похоже, что старые файлы httpd мешали нормальной установке новой версии
2. Вы уверены, что установили brew в /usr/local, а не в /opt/homebrew (по умолчанию используется /opt/homebrew)?