首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您能否编译Apache HTTP Server并将其二进制文件重新部署到其他位置?

问您能否编译Apache HTTP Server并将其二进制文件重新部署到其他位置?
EN

Stack Overflow用户
提问于 2008-08-22 11:57:53
回答 4查看 1.5K关注 0票数 1

作为我们产品发布的一部分,我们提供了在(UNIX)开发机器上编译的Apache HTTP Server二进制文件。

我们告诉客户机将二进制文件(安装在它们的UNIX服务器上)安装在编译它时所在的同一目录结构下。对于一些客户端来说,这是不合适的,例如,他们可以在服务器上安装软件的位置有限制,并且他们不想自己编译Apache。

有没有一种方法可以编译Apache HTTP Server,以便可以使用环境变量动态指定其安装位置?

我花了几天的时间试图解决这个问题,但找不到方法。这让我相信Apache二进制文件在编译时硬编码了一些目录路径,阻碍了我们所需的可移植性。

有没有人能做到这一点?

EN

回答 4

Stack Overflow用户

发布于 2008-08-22 12:34:20

我认为解决这个问题的方法是开发一个"./configure && make“脚本,您的客户端可以使用它来安装、指定和编译二进制文件。当然,这需要客户机在其服务器上安装所有源代码,或者您也可以在NFS共享上提供这些源代码。

票数 1
EN

Stack Overflow用户

发布于 2008-08-26 12:31:10

如果您正在为特定位置编译Apache2,但又希望您的客户端能够将其安装到其他位置(我假设它们与您的构建机器具有相同的体系结构和操作系统),那么您可以这样做,但是apachectl脚本将需要一些售后处理。

我刚刚测试了以下步骤:

运行./configure --prefix=/opt/apache2后,

  1. 解压了Apache2源代码(不过这也适用于Apache1.3)

  1. 运行make,然后运行sudo make install以在构建计算机上安装。

  1. 切换到安装目录(/opt/apache2),并使用tar和gzip压缩二进制文件和配置文件。我使用了cd /opt/apache2; sudo tar cf - apache2 | gzip -c > ~/apache2.tar.gz

  1. 将tar文件移动到目标计算机。我决定将其安装在/opt/mynewdir/dan/apache2中进行测试。所以基本上,您的客户端不能使用rpm或类似的东西--除非您知道如何使其可重定位(我不知道:-)。

  1. 不管怎样,您的客户机的conf/httpd.conf文件将充满硬编码的绝对路径--他们只需将其更改为所需的任何路径即可。apachectl脚本也有硬编码的路径。这只是一个shell脚本,所以您可以破解它,或者给他们一个sed脚本,以便将构建计算机上的旧路径转换为客户端上的新路径。

  1. 我跳过了所有的繁琐工作,只运行了./bin/httpd -f /opt/mynewdir/dan/conf/httpd.conf :-)

希望这能有所帮助。如果它对您无效,请让我们知道您收到的任何错误消息。

票数 1
EN

Stack Overflow用户

发布于 2008-08-26 09:45:38

我认为解决这个问题的方法是开发一个“./

&& make”脚本,你的客户端可以用它来安装、指定和编译二进制文件。当然,这需要客户机在其服务器上安装所有源代码,或者您也可以在NFS共享上提供这些源代码。

更不用说完整的构建工具链了。如今,大多数主要发行版中的默认版本都不是GCC。强制客户端将其安装到/opt/my_apache2/或类似的位置不是很明智吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档