如何为Apache 2.4(OSX)安装模块?

时间:2018-05-30 12:08:20

标签: apache homebrew macos-high-sierra

我用Homebrew安装了apache。当我启动默认安装时,我收到此错误:

  

httpd:/usr/local/etc/httpd/httpd.conf第85行的语法错误:无法将lib / httpd / modules / mod_auth_basic.so加载到服务器:dlopen(/ usr / local / var / www / lib /httpd/modules/mod_auth_basic.so,10):找不到图像

我经历了对未完成的模块的评论,但似乎它缺少所有这些模块,特别是像mod_auth_basic这样有用的模块。看看用自制软件安装apache的教程,我注意到它在我的计算机上安装的路径与教程中的路径大不相同。

如何安装这些模块(最好是一次性使用一体机包装?)

编辑:

在查看错误消息一秒后,我意识到dlopen()正在使用我的ServerRoot作为模块的基础。而不是

  

的dlopen(/usr/local/var/www/lib/httpd/modules/mod_auth_basic.so)

应该是

  

的dlopen(/usr/libexec/apache2/mod_auth_basic.so

那么我如何将模块加载器指向正确的目录?

编辑:

我解决了模块没有加载的问题,但我仍然想知道如何添加模块。

1 个答案:

答案 0 :(得分:0)

如果模块目录为/usr/libexec/apache2,则可能需要禁用SIP才能在此处复制模块文件(*.so)。以下讨论可能会有所帮助:https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really

无论如何,如果您想通过httpd安装获得更大的自由度,则可能需要下载并构建源代码。这非常简单,您可以将其安装在不受保护的任何目录中(建议的默认值为/usr/local/apache2,这样就可以了),因此您无需经历禁用SIP的麻烦。