我用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
那么我如何将模块加载器指向正确的目录?
编辑:
我解决了模块没有加载的问题,但我仍然想知道如何添加模块。
答案 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的麻烦。