Apache не работает после обновления MacOS Mojave

Хорошо, после обновления 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'

5

Решение

Я столкнулся с аналогичной проблемой с PHP 5.6, так как он работал нормально до обновления Mojave. Я сделал следующее, чтобы решить проблему успешно:

  1. Запустите команду ниже
    sudo nano /etc/apache2/httpd.conf

  2. убедитесь, что приведенные ниже модули не прокомментированы:

    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

  1. Проверьте нужный вам модуль php (PHP 5.6 или 7.x) и загрузите нужный модуль тоже, добавив строку или комментируя / раскомментируя строки

    LoadModule php5_module libexec / apache2 / libphp5.so

ИЛИ ЖЕ

LoadModule php7_module libexec/apache2/libphp7.so

Прокомментируйте тот, который не нужен, добавив «#» в начало строки

  1. Запустите ниже команды для перезапуска и тестирования apapche
    а. перезапуск sudo apachectl
    б. apachectl configtest

Проверьте на наличие ошибок там

Для 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/

Это все заставило вещи работать в моей системе

8

Другие решения

В дополнение к ответу Аданга мне также пришлось раскомментировать эту строку:

Include /private/etc/apache2/extra/httpd-userdir.conf

для того, чтобы он знал, какие пользовательские каталоги были доступны.

В /private/etc/apache2/extra/httpd-userdir.conf

Мне пришлось раскомментировать эту строку:

Include /private/etc/apache2/users/*.conf

затем:

sudo apachectl restart
4

У меня была такая же проблема после установки Mac OS Mojave.
Я сделал следующие шаги, и это работало со мной:

brew update

затем:

brew upgrade

Я отредактировал /etc/apache2/httpd.conf, раскомментировав следующую строку:

LoadModule php7_module libexec/apache2/libphp7.so

Откройте терминал и перезапустите сервер apache:

sudo apachectl restart

пост по этой ссылке может оказаться полезным

1

Я следовал инструкциям в приведенных выше ответах и ​​все еще получил 403 Запрещено при попытке получить доступ к моему /Users/myuser/Sites/ папка. Чтобы это исправить, мне пришлось сменить пользователя в /etc/apache2/httpd.conf от _www моему собственному пользователю.

Для этого отредактируйте файл httpd.conf, используя ваш любимый редактор /etc/apache2/httpd.conf, Ищу:

User _www

замените своим пользователем:

User myuser

затем перезапустите apache:

sudo apachectl restart
0

потому что тема 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 решил мою проблему.

0
По вопросам рекламы [email protected]