Хорошо, после обновления macOS с High Sierra до Mojave, Apache с PHP перестал работать должным образом, поэтому я сделал все, как сказано в этом руководстве — https://getgrav.org/blog/macos-mojave-apache-multiple-php-versions
но после этого все еще apache не работает должным образом, иногда работает, иногда нет, и это говорит в браузерах ERR_CONNECTION_REFUSED или других ошибках, таких как 404 или 500.
В логе apache есть:
[Tue Oct 02 15:02:23.209423 2018] [mpm_prefork:notice] [pid 14579] AH00173: SIGHUP received. Attempting to restart
[Tue Oct 02 15:02:23.255957 2018] [mpm_prefork:notice] [pid 14579] AH00163: Apache/2.4.35 (Unix) PHP/7.2.10 configured -- resuming normal operations
[Tue Oct 02 15:02:23.256008 2018] [core:notice] [pid 14579] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd'
[Tue Oct 02 15:14:37.626645 2018] [mpm_prefork:notice] [pid 14579] AH00173: SIGHUP received. Attempting to restart
[Tue Oct 02 15:14:37.674603 2018] [mpm_prefork:notice] [pid 14579] AH00163: Apache/2.4.35 (Unix) PHP/7.2.10 configured -- resuming normal operations
[Tue Oct 02 15:14:37.674672 2018] [core:notice] [pid 14579] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd'
[Tue Oct 02 15:28:40.715060 2018] [mpm_prefork:notice] [pid 14579] AH00173: SIGHUP received. Attempting to restart
[Tue Oct 02 15:28:40.752117 2018] [ssl:warn] [pid 14579] AH01909: www.example.com:8443:0 server certificate does NOT include an ID which matches the server name
[Tue Oct 02 15:28:40.766009 2018] [mpm_prefork:notice] [pid 14579] AH00163: Apache/2.4.35 (Unix) OpenSSL/1.0.2p PHP/7.2.10 configured -- resuming normal operations
[Tue Oct 02 15:28:40.766052 2018] [core:notice] [pid 14579] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd'
Я столкнулся с аналогичной проблемой с PHP 5.6, так как он работал нормально до обновления Mojave. Я сделал следующее, чтобы решить проблему успешно:
Запустите команду ниже
sudo nano /etc/apache2/httpd.conf
убедитесь, что приведенные ниже модули не прокомментированы:
LoadModule authz_core_module libexec / apache2 / mod_authz_core.so
LoadModule authz_host_module libexec / apache2 / mod_authz_host.so
LoadModule userdir_module libexec / apache2 / mod_userdir.so
LoadModule include_module libexec / apache2 / mod_include.so
LoadModule rewrite_module libexec / apache2 / mod_rewrite.so
Я добавил недостающий в httpd.conf
Проверьте нужный вам модуль php (PHP 5.6 или 7.x) и загрузите нужный модуль тоже, добавив строку или комментируя / раскомментируя строки
LoadModule php5_module libexec / apache2 / libphp5.so
ИЛИ ЖЕ
LoadModule php7_module libexec/apache2/libphp7.so
Прокомментируйте тот, который не нужен, добавив «#» в начало строки
Проверьте на наличие ошибок там
Для PHP 5.6:
В случае, если у вас был php 5 с brew уже в системе до upgarde, и вышеуказанные изменения дают ошибку, как показано ниже
«httpd: синтаксическая ошибка в строке 180 файла /private/etc/apache2/httpd.conf: невозможно загрузить libexec / apache2 / libphp5.so на сервер: dlopen (/usr/libexec/apache2/libphp5.so, 10): изображение не найденный»
Затем найдите в системе файл libphp5.so и, если он найден, скопируйте его в «/ usr / libexec / apache2 /».
В моем случае команда была
sudo cp ./local/Cellar/[email protected]/5.6.25_1/libexec/apache2/libphp5.so /usr/libexec/apache2/
Это все заставило вещи работать в моей системе
В дополнение к ответу Аданга мне также пришлось раскомментировать эту строку:
Include /private/etc/apache2/extra/httpd-userdir.conf
для того, чтобы он знал, какие пользовательские каталоги были доступны.
В /private/etc/apache2/extra/httpd-userdir.conf
Мне пришлось раскомментировать эту строку:
Include /private/etc/apache2/users/*.conf
затем:
sudo apachectl restart
У меня была такая же проблема после установки Mac OS Mojave.
Я сделал следующие шаги, и это работало со мной:
brew update
затем:
brew upgrade
Я отредактировал /etc/apache2/httpd.conf, раскомментировав следующую строку:
LoadModule php7_module libexec/apache2/libphp7.so
Откройте терминал и перезапустите сервер apache:
sudo apachectl restart
Я следовал инструкциям в приведенных выше ответах и все еще получил 403 Запрещено при попытке получить доступ к моему /Users/myuser/Sites/
папка. Чтобы это исправить, мне пришлось сменить пользователя в /etc/apache2/httpd.conf
от _www
моему собственному пользователю.
Для этого отредактируйте файл httpd.conf, используя ваш любимый редактор /etc/apache2/httpd.conf
, Ищу:
User _www
замените своим пользователем:
User myuser
затем перезапустите apache:
sudo apachectl restart
потому что тема httpd.conf испортилась после обновления Мохаве, я получил эту ошибку во время sudo apachectl configtest
Could not reliably determine the server's fully qualified domain name, using XXX. Set the 'ServerName' directive globally to suppress this message
Я узнал #ServerName localhost:80
в httpd.conf был закомментирован, uncommenting решил мою проблему.