Apache не работи след актуализация на macOS Mojave

Добре, след актуализиране на macOS от High Sierra до Mojave, Apache с PHP спира да работи правилно, така че направих всичко, както е казано в това ръководство - https://getgrav.org/blog/macos-mojave-apache-множество-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'

person Edoras    schedule 02.10.2018    source източник


Отговори (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

OR

LoadModule php7_module libexec/apache2/libphp7.so

Коментирайте този, който не е необходим, като добавите "#" в началото на реда

  1. Изпълнете командите по-долу за рестартиране на apapche и тествайте a. sudo apachectl рестартирайте b. apachectl configtest

Проверете за грешки там

За PHP 5.6: В случай, че имате php 5 с brew вече в системата преди надстройката и горните промени дават грешка като по-долу „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/

Всичко това накара нещата да работят в моята система

person adang    schedule 04.10.2018
comment
Пускам PHP 7 и стъпките до 4 решиха проблема ми. Благодаря ти много! - person Ruben Kannan; 13.11.2018
comment
Една от най-важните команди е: sudo apachectl configtest За да видите всякакви грешки в конфигурацията. - person herohat; 14.03.2019
comment
За mac Mojave използвайте sudo /usr/sbin/apachectl restart вместо sudo apachectl restart - person hemanto; 05.07.2019

В допълнение към отговора на 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
person Matthew    schedule 11.10.2018
comment
Благодаря, трябва да се добави към другото решение - person Ayoub; 24.11.2018

Имах същия проблем след инсталирането на Mac OS Mojave. Направих следните стъпки и работи с мен:

brew update 

тогава:

brew upgrade

Редактирах /etc/apache2/httpd.conf, като разкоментирах следния ред:

LoadModule php7_module libexec/apache2/libphp7.so

Отворете терминала и рестартирайте apache сървъра:

sudo apachectl restart

може да намерите публикацията на тази връзка е полезна

person Wael Almadhoun    schedule 30.12.2018

Следвах инструкциите в отговорите по-горе и все пак получих 403 Забранено при опит за достъп до моята папка /Users/myuser/Sites/. За да поправя това, трябваше да променя потребителя в /etc/apache2/httpd.conf от _www на моя собствен потребител.

За да направите това, редактирайте вашия файл httpd.conf, като използвате любимия си редактор /etc/apache2/httpd.conf. Търсете:

User _www

заменете с вашия потребител:

User myuser

след това рестартирайте apache:

sudo apachectl restart
person bated    schedule 20.12.2018

тъй като темата е 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 е коментиран, премахването на коментарите реши проблема ми.

person Francesco Panella    schedule 11.01.2019