好吧,将macOS从High Sierra更新到Mojave之后,使用PHP的Apache停止正常运行,所以我按照本指南的说明做了所有工作-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'
答案 0 :(得分:12)
在Mojave升级之前,PHP 5.6运行良好,因此我也遇到了类似的问题。我执行以下操作成功解决了该问题:
运行以下命令 须藤nano /etc/apache2/httpd.conf
确保未注释以下模块:
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中添加了缺失的
为您检查正确的php模块(PHP 5.6 ot 7.x),并通过添加行或注释/取消注释行来加载所需的模块
LoadModule php5_module libexec / apache2 / libphp5.so
OR
LoadModule php7_module libexec/apache2/libphp7.so
通过在行首添加“#”来注释不需要的
检查那里是否有错误
对于PHP 5.6: 如果您在upgarde之前已经在系统中安装了带有brew的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/
这一切都使事情在我的系统中发挥作用
答案 1 :(得分:7)
除了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
答案 2 :(得分:1)
在安装Mac OS Mojave之后,我遇到了同样的问题。 我已经完成了以下步骤,并且可以正常工作:
brew update
然后:
brew upgrade
我通过取消注释以下行来编辑/etc/apache2/httpd.conf:
LoadModule php7_module libexec/apache2/libphp7.so
打开终端并重新启动apache服务器:
sudo apachectl restart
答案 3 :(得分:0)
我按照上述答案中的说明进行操作,尝试访问/Users/myuser/Sites/
文件夹时仍然收到403 Forbidden。要解决此问题,我必须将/etc/apache2/httpd.conf
中的用户从_www
更改为我自己的用户。
为此,请使用您喜欢的编辑器/etc/apache2/httpd.conf
编辑httpd.conf文件。寻找:
User _www
替换您的用户:
User myuser
然后重新启动apache:
sudo apachectl restart
答案 4 :(得分:0)
因为主题是在Mojave升级后弄乱了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
我发现httpd.conf中的#ServerName localhost:80
被注释掉了,没有注释就解决了我的问题。