我用Homebrew安装了apache . 当我启动默认安装时,我收到此错误:
httpd:/usr/local/etc/httpd/httpd.conf第85行的语法错误:无法将lib / httpd / modules / mod_auth_basic.so加载到server: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 回答
如果你的模块目录是
/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的麻烦 .