Как я могу установить brew httpd на macOS 11 Big Sur?

#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)?