![Apache 2.4.12 和 CentOS 7:编译期间未构建 DSO 共享模块](https://linux22.com/image/661309/Apache%202.4.12%20%E5%92%8C%20CentOS%207%EF%BC%9A%E7%BC%96%E8%AF%91%E6%9C%9F%E9%97%B4%E6%9C%AA%E6%9E%84%E5%BB%BA%20DSO%20%E5%85%B1%E4%BA%AB%E6%A8%A1%E5%9D%97.png)
我有一个一般性问题。我试图从源代码编译 CentOS 7 上的 Apache 2.4.12。我已阅读 2.4 文档,仔细研究了 configure -h,并搜索了网络,但似乎没有人遇到与我相同的问题。相信我,我尝试过许多 --enable-XXX=shared 和其他 ./configure 特性,但它们都导致无法创建 DSO!我根本没有收到任何 configure 或 make 错误。有什么想法吗?
答案1
(来自我的安装脚本)
一般答案:要么是 configure 选项的顺序很重要,要么是 Apache 不喜欢将其 --options 放在单独的行上。以 enable-mods-shared 开头,如下所示(尽管您可能想要“few”或“reallyall”等)。
cd httpd-2.4.12/
mkdir -v srclib/apr/ srclib/apr-util/
mv -v ../apr-1.5.2/* srclib/apr/
mv -v ../apr-util-1.5.4/* srclib/apr-util/
./configure --enable-mods-shared=all \ <---Perhaps the most important position of all.
--prefix=/usr/local/apache2 \
--with-mpm=prefork \
--with-pcre=/usr/local/bin/pcre-config \
--with-included-apr \
--with-z=/usr/local/lib \
--with-ssl=/usr/local/ssl/lib \
--with-sslport=443 \
--with-port=80 \
&& make && make install && ./httpd -l && ./httpd -M
cd ~/downloads/
sleep 5
当每行一个选项完成时,这会失败,但可以像这样工作。
./configure --enable-mods-shared=all --prefix=/usr/local/apache2 --with-mpm=prefork --with-pcre=/usr/local/bin/pcre-config --with-included-apr --with-z=/usr/local/lib --with-ssl=/usr/local/ssl/lib --with-sslport=443 --with-port=80 && make && make install && ./httpd -l && ./httpd -M