将 mod_perl 和 mod_dav_svn 集成到 Solaris 10 上的 Apache 中的最简单方法是什么

将 mod_perl 和 mod_dav_svn 集成到 Solaris 10 上的 Apache 中的最简单方法是什么

我编写了一些软件,使用在 Apache 内部运行的 Perl 代码(使用 mod_perl)来与 subversion(使用 mod_dav_svn 模块)协同工作(以及其他功能)。

我目前正在编写一些关于如何在各种操作系统上设置和运行它的操作文档,但在 Solaris 上遇到了问题。

  • Solaris10 附带的 Apache2 服务器有 mod_perl 但没有 mod_dav_svn - 我找不到针对此 apache 构建的二进制 svn 包。
  • 太阳软件有可以协同工作的 subversion 和 apache 2.2 包,但没有 mod_perl。
  • 各种二进制颠覆包(例如 Collabnet)包含 apache,但不包括 mod_perl。

看来我的选择是从源代码构建 mod_perl 或 subversion,这是我真的我希望避免这种情况,因为我试图使安装说明尽可能的非技术性。

那么,是否有可用的二进制包可以让我在 Solaris 10 上的同一个 Apache 中运行 mod_perl 和 mod_dav_svn(我错过了)?

除此之外,如果有人曾经这样做过,他们是否愿意评论一下构建 svn 或构建 mod_perl 哪个会是最不令人头疼的。

答案1

通常,从源代码构建包很麻烦,但是一旦完成,您就可以使用它来制作包并自己提供二进制文件,从而省去其他人为您的项目这样做的麻烦。

我自己只做过 subversion 而不是 mod_perl,但是我看了一下我们用于 mod_perl 的构建脚本(遗憾的是它非常特定于我们的环境并且对你没有多大用处)并且看起来 mod_perl 将是最简单的选择,因为它具有更少的依赖性(只有 perl 和 apache)。

构建 mod_perl 看上去很简单perl Makefile.PL MP_APXS=/path/to/your/apache/bin/apxs; make; make install

另一方面,Subversion 至少需要 apr 和 apru,并且根据您的要求,还需要其他依赖项(例如,我们使用 trac 的 python 绑定进行构建)。如果您决定编译 subversion,您可能希望禁用尽可能多的依赖项(例如,如果您不需要 berkely db 支持,请传递--without-berkley-db给 configure)。如果 configure 抱怨缺少依赖项,请确定是否需要它,--without-featurex如果不需要,则只需添加。

您需要先构建 apr 和 apru(或安装二进制包),然后传递--with-apr=/some/path--with-apr-util=/some/path选项(两者都是位于 bin 目录中 apr/apu-1-config 文件的路径)。

让 SSL 支持正常工作可能还需要一些工作,因为 solaris ssl 库位于通常无法检测到的位置。请确保您-I/usr/sfw/include的 CFLAGS 环境变量和-L/usr/sfw/lib -R/usr/sfw/lib(或 /usr/sfw/lib/amd64 或 sparcv9(如果您需要 64 位))LDFLAGS 环境变量中都有。这两个变量都需要在运行 configure 之前设置。如果您正在构建 32 位,您可能只需执行 即可--with-ssl=/usr/sfw,但如果您需要 64 位版本而没有正确设置 CFLAGS/LDFLAGS,Subversion 不太可能正确找到 64 位库。

与构建 mod_perl 一样,您需要让 subversion 知道 apxs 在哪里,只需传递--with-apxs=/path/to/apache/bin/apxs给 configure 即可。

最后一条建议可能很明显,但以防万一:将构建说明放入脚本(或 Makefile),以便您可以轻松地在新机器上或使用略有不同的配置选项重复它们。

答案2

只是在这里回答以记录对我有用的方法,遵循马克非常有帮助的回答。

由于编译 mod_perl 看起来比编译 Subversion 麻烦少,所以我从sunfreeware.com

然后我下载并构建mod_perl按照说明。

我确实必须进行编辑,/usr/local/apache2/bin/apxs因为它假定 perl 在/usr/local/bin而不是,/usr/bin但之后它编译了所有内容并放在mod_perl.so正确的位置。

在 Solaris 中安装 Perl 模块时,另一个小问题是,它是使用 Sun 编译器而不是 gcc 编译的,如果你下载并使用它来代替(确保它的 bin 目录位于路径上的 gcc 之前)。

答案3

我刚刚意识到开放CSW软件包可能是另一种解决方案。它们似乎有二进制 apache、mod_perl 和 subversion 软件包。不过我还没有尝试过。

答案4

只需使用 Web Stack,Sun 集成编译了这些产品(您可以选择性地安装您需要的):

Web Stack 软件包括以下软件:

  1. 服务器软件——Apache Web 服务器、Apache Tomcat、Squid 代理服务器、lighttpd。
  2. 数据库软件-MySQL 服务器。
  3. 编程环境 - PHP、Perl、Ruby 和 Python。
  4. 缓存软件 - memcached。

完整操作方法请点击这里:http://wikis.sun.com/display/WebStack/Web+Stack+Getting+Started+Guide

相关内容