简体   繁体   中英

Apache not working after macOS Mojave update

Ok, after update macOS from High Sierra to Mojave, Apache with PHP stop working properly, so I did everything as is said in this guide - https://getgrav.org/blog/macos-mojave-apache-multiple-php-versions

but after that, still apache not working properly, sometimes working, sometimes not, and its says in browsers ERR_CONNECTION_REFUSED or other errors like 404 or 500.

In apache log is:

[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'

I have faced similar issue with PHP 5.6 as it was running fine before Mojave upgrade. I did the following to resolve the issue successfully:

  1. Run the command below sudo nano /etc/apache2/httpd.conf

  2. make sure the below modules are uncommented:

    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

I have added the missing one in httpd.conf

  1. Check the right php module for you (PHP 5.6 ot 7.x) and load the required module too by adding the line or commenting/uncommenting the lines

    LoadModule php5_module libexec/apache2/libphp5.so

OR

LoadModule php7_module libexec/apache2/libphp7.so

Comment the one not needed by adding "#" to start of line

  1. Run below commands for apapche restart and test a. sudo apachectl restart b. apachectl configtest

Check for any errors there

For PHP 5.6: In case you were having the php 5 with brew already in system before upgarde and the above changes gives error as below "httpd: Syntax error on line 180 of /private/etc/apache2/httpd.conf: Cannot load libexec/apache2/libphp5.so into server: dlopen(/usr/libexec/apache2/libphp5.so, 10): image not found"

Then search for libphp5.so in the system and if found copy it to "/usr/libexec/apache2/"

In my case command was

sudo cp ./local/Cellar/php@5.6/5.6.25_1/libexec/apache2/libphp5.so /usr/libexec/apache2/

This all made things working in my system

Further to adang's reply i also had to uncomment this line:

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

in order for it to know what user directories were available.

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

I had to uncomment this line:

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

then:

sudo apachectl restart

I had the same issue after installing the Mac OS Mojave. I have done the following steps and it worked with me:

brew update 

then:

brew upgrade

I have edited /etc/apache2/httpd.conf by uncommenting the following line:

LoadModule php7_module libexec/apache2/libphp7.so

Open the terminal and restart the apache server:

sudo apachectl restart

you might find the post on this link helpful

I followed the instructions in the above answers and still got a 403 Forbidden when trying to access my /Users/myuser/Sites/ folder. To fix this I had to change the user in /etc/apache2/httpd.conf from _www to my own user.

To do this edit your httpd.conf file using your favorite editor /etc/apache2/httpd.conf . Look for:

User _www

replace with your user:

User myuser

then restart apache:

sudo apachectl restart

because the topic is the httpd.conf messed up after Mojave upgrade I got also this error during 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

I found out the #ServerName localhost:80 in the httpd.conf was comented out, uncommenting resolved my issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM