apache - 如何为 Apache 2.4 (OSX) 安装模块?
问题描述
我用 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 这样有用的模块。查看使用 homebrew 安装 apache 的教程,我注意到它在我的计算机上安装的路径与教程中的路径大不相同。
我如何安装这些模块(最好是使用一个多合一的包,而不是一次一个)?
编辑:
在查看错误消息一秒钟后,我意识到这dlopen()
是使用我的 ServerRoot 作为模块的基础。代替
dlopen(/usr/local/var/www/lib/httpd/modules/mod_auth_basic.so)
它应该是
dlopen(/usr/libexec/apache2/mod_auth_basic.so
那么如何将模块加载器指向正确的目录呢?
编辑:
我解决了模块未加载的问题,但我仍然很想知道如何添加模块。
解决方案
如果您的模块目录是/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 的麻烦。
推荐阅读
- windows - 如何重新配置 RabbitMQ 不在 Windows 上使用 %appdata%?
- php - 在laravel中进行所有重定向后获取最终网址
- variables - 重置或清除静态变量
- android - ViewPager 无法滑动片段
- javascript - 图形编辑器 Javascript - 观察者设计模式
- sql - Unpivot 显示不正确结果的多个列
- javascript - Java 脚本文件中的引导程序
- php - 更改 array_diff PHP 中的数组键
- php - 在 cakephp2.10 中使用 getLastInsertID 时获取 null
- ajax - csrf 令牌代码点火器 dropzone