Apache - 我如何将单个和/或所有模块构建为共享模块

Posted

技术标签:

【中文标题】Apache - 我如何将单个和/或所有模块构建为共享模块【英文标题】:Apache - how do I build individual and/or all modules as shared modules 【发布时间】:2010-09-07 09:57:40 【问题描述】:

在 Mac OS X 10.5 上,我下载了最新版本的 Apache 2.2.9。在通常的配置、制作、安装舞蹈之后,我构建了一个没有 mod_rewrite 的 apache。这不是静态链接的,模块也没有构建在 /modules 文件夹中。

我必须执行以下操作来构建 Apache 和 mod_rewrite:

./configure --prefix=/usr/local/apache2 --enable-rewrite=shared
有没有办法告诉 Apache 将所有模块构建为共享模块 (DSO),以便我可以控制 Apache 配置的加载? 现在我已经构建了 Apache 和 mod_rewrite DSO,如何在不构建所有 Apache 的情况下构建另一个共享模块?

(我上次在 Solaris 上构建 Apache(2.2.8)时,默认情况下它将所有内容构建为共享模块。)

【问题讨论】:

【参考方案1】:

尝试使用./configure 选项--enable-mods-shared="all"--enable-mods-shared="<list of modules>" 将模块编译为共享对象。进一步看details in Apache 2.2 docs

要编译能够加载共享对象(并稍后添加模块)的 Apache,请使用 --enable-so,然后参阅 Apache 2.2. DSO docs 中有关单独编译模块的文档。

【讨论】:

"all" 并不意味着全部!您应该改用 ./configure --with-ldap --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache"。【参考方案2】:
./configure --prefix=/usr/local/apache2 --enable-mods-shared="all" --enable-proxy=shared

为了获得重写、代理和一堆其他模块,我使用了上面的命令。在我之前的安装中,使用 --enable-mods-shared="all" 也编译/安装了代理模块。但是在v2.2.22“all”中没有包含代理模块。

【讨论】:

以上是关于Apache - 我如何将单个和/或所有模块构建为共享模块的主要内容,如果未能解决你的问题,请参考以下文章

如何将整个 Vue 应用程序捆绑为单个 UMD 模块

lodash如何允许导入单个模块?

CKEditor 4 构建(缩小和丑化)

如何将多个输入(旋钮)添加到单个滑块?

如何使用不同的配置为单个模块创建 tarball 和 zip?

如何在Gradle中为单个测试类并行执行JUnit测试