Apache在macOS Mojave更新后无法正常工作

Edo*_*ras 9 php apache macos apache2 macos-mojave

好吧,在从High Sierra到Mojave更新macOS后,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'
Run Code Online (Sandbox Code Playgroud)

ada*_*ang 14

我遇到过与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 ot 7.x)并通过添加行或注释/取消注释行来加载所需的模块

    LoadModule php5_module libexec/apache2/libphp5.so

要么

LoadModule php7_module libexec/apache2/libphp7.so
Run Code Online (Sandbox Code Playgroud)

通过在行首添加"#"来注释不需要的那个

  1. 运行以下命令以进行apapche restart并测试a.sudo apachectl restart b.apachectl configtest

检查那里的任何错误

对于PHP 5.6:如果你在upgarde之前已经在系统中使用了brew 5的php 5,并且上面的更改给出了错误,如下所示:httpd:/private/etc/apache2/httpd.conf的第180行的语法错误:无法加载libexec /apache2/libphp5.so进入服务器:dlopen(/usr/libexec/apache2/libphp5.so,10):找不到图像"

然后在系统中搜索libphp5.so,如果找到则将其复制到"/ usr/libexec/apache2 /"

在我的情况下命令是

sudo cp ./local/Cellar/php@5.6/5.6.25_1/libexec/apache2/libphp5.so /usr/libexec/apache2/
Run Code Online (Sandbox Code Playgroud)

这一切都使我的系统工作


小智 8

继adang的回复之后,我还必须取消注释这一行:

Include /private/etc/apache2/extra/httpd-userdir.conf
Run Code Online (Sandbox Code Playgroud)

以便它知道哪些用户目录可用.

在/private/etc/apache2/extra/httpd-userdir.conf中

我必须取消注释这一行:

Include /private/etc/apache2/users/*.conf
Run Code Online (Sandbox Code Playgroud)

然后:

sudo apachectl restart
Run Code Online (Sandbox Code Playgroud)


Wae*_*oun 5

安装 Mac OS Mojave 后我遇到了同样的问题。我已经完成了以下步骤并且它对我有用:

brew update 
Run Code Online (Sandbox Code Playgroud)

然后:

brew upgrade
Run Code Online (Sandbox Code Playgroud)

我通过取消注释以下行来编辑 /etc/apache2/httpd.conf:

LoadModule php7_module libexec/apache2/libphp7.so
Run Code Online (Sandbox Code Playgroud)

打开终端并重启apache服务器:

sudo apachectl restart
Run Code Online (Sandbox Code Playgroud)

您可能会发现此链接上的帖子很有帮助