it-swarm.com.ru

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

Хорошо, после обновления macOS с High Sierra до Mojave Apache с PHP перестал работать должным образом, поэтому я сделал все, как сказано в этом руководстве - https://getgrav.org/blog/macos-mojave-Apache -multiple-php-версии

но после этого все еще 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
Edoras

Я столкнулся с аналогичной проблемой с 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

OR

LoadModule php7_module libexec/Apache2/libphp7.so

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

  1. Запустите приведенные ниже команды для перезапуска и тестирования apapche A. Перезапуск Sudo apachectl B. 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/

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

9
adang

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

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

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

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

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

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

затем:

Sudo apachectl restart
5
Matthew

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

brew update 

затем:

brew upgrade

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

LoadModule php7_module libexec/Apache2/libphp7.so

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

Sudo apachectl restart

Вы можете найти пост по этой ссылке полезным

1
Wael Almadhoun

потому что тема httpd.conf испортилась после обновления Mojave, я также получил эту ошибку во время 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 был закомментирован, а комментирование решило мою проблему.

0
Francesco Panella

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

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

User _www

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

User myuser

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

Sudo apachectl restart
0
bated