我的要求是从源代码编译并安装 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 吗?