如何解决apache2.2编译错误?

如何解决apache2.2编译错误?

我的要求是从源代码编译并安装 httpd 2.2,所有模块都必须共享吗?

发出如下配置命令。

./configure --enable-shared-mods="all" --prefix=/path/to/install

配置命令已成功执行,但是当我开始编译时,它出现了这样的错误。

/bin/sh /usr/local/source3/httpd-2.2.2/shlibtool --silent --mode=link gcc -pthread          -o mod_authn_file.la -rpath /usr/local/task03/modules -module -avoid-version  mod_authn_file.lo 
/bin/sh: /usr/local/source3/httpd-2.2.2/shlibtool: No such file or directory
make[4]: *** [mod_authn_file.la] Error 127
make[4]: Leaving directory `/usr/local/source3/httpd-2.2.2/modules/aaa'
make[3]: *** [shared-build-recursive] Error 1
make[3]: Leaving directory `/usr/local/source3/httpd-2.2.2/modules/aaa'
make[2]: *** [shared-build-recursive] Error 1
make[2]: Leaving directory `/usr/local/source3/httpd-2.2.2/modules'
make[1]: *** [shared-build-recursive] Error 1
make[1]: Leaving directory `/usr/local/source3/httpd-2.2.2'
make: *** [all-recursive] Error 1

Apache 是否已知会出现此问题?

答案1

我想您有理由尝试安装 2006 年 4 月发布的 2.2.2 版本,而不是 2017 年 7 月发布的至少 2.2.34 版本,并且仍然是 Apache 2.2 系列的最后一个版本,该系列于 2017 年底停产。但到目前为止,2.2.2 版本会有很多已知的安全漏洞。

最重要的部分似乎是这个消息:

/bin/sh: /usr/local/source3/httpd-2.2.2/shlibtool: No such file or directory

所以:

  • 也许/usr/local/source3/httpd-2.2.2/shlibtool不存在?但如果 configure 命令完成时没有错误,那似乎不太可能。
  • 也许它是一个指向无效目标的符号链接?在这种情况下,那个目标是什么?运行ls -l /usr/local/source3/httpd-2.2.2/shlibtool看看。
  • shlibtool如果它不是一个符号链接,那么它可能是一个指定了系统中不存在的解释器的脚本?在这种情况下,请查看第一行。

在 Google 上搜索“shlibtool”得到的第一个结果是:http://mail-archives.apache.org/mod_mbox//httpd-dev/200107.mbox/%3C000c01c107db$2ca92780$9865fea9@cc230545b%3E

如果有必要,它似乎shlibtool可以在配置过程中自动生成并且您已经libtool在系统上安装了. 您安装了 libtool 吗?

相关内容