我写了一些使用Apache内部运行的Perl代码的软件(使用mod_perl)来处理(除其他外)subversion(使用mod_dav_svn模块)。
我目前正在编写一些关于如何在各种操作系统上进行设置和运行的指导性文档,并且我遇到了Solaris上的问题。
看起来我的select是从源代码构buildmod_perl或subversion,这是我真正希望避免的,因为我试图使安装说明尽可能不是技术性的。
那么,是否有一个可用的二进制包,让我可以在我错过的Solaris 10上的同一个Apache上运行mod_perl和mod_dav_svn?
否则,如果有人不得不这样做,他们是否会评论哪个build筑svn或build筑mod_perl将是最小的头痛。
一般情况下,从源代码构build软件包是件痛苦的事情,但一旦完成,您可以使用它来创build软件包并自行提供二进制文件,并为您的项目节省了其他人的麻烦。
我只做了自己而不是mod_perl,但是我看了一下我们用于mod_perl的构build脚本(可惜它对我们的环境非常具体,对你没有多大用处),看起来像mod_perl将是最简单的select,因为它有更less的依赖(只是Perl和Apache)。
构buildmod_perl看起来和perl Makefile.PL MP_APXS=/path/to/your/apache/bin/apxs; make; make install一样简单perl Makefile.PL MP_APXS=/path/to/your/apache/bin/apxs; make; make install perl Makefile.PL MP_APXS=/path/to/your/apache/bin/apxs; make; make install perl Makefile.PL MP_APXS=/path/to/your/apache/bin/apxs; make; make install 。
另一方面,Subversion至less需要apr和apru,根据你的需求,还有其他的依赖(比如我们用trac的python绑定构build)。 如果你决定编译subversion,你可能希望尽可能地禁用更多的依赖关系(例如,如果你不需要berkely db支持,可以通过--without-berkley-db来configuration)。 如果configure提示缺less依赖关系,请决定是否需要它,如果不需要,只需添加--without-featurex 。
你需要首先安装apr和apru(或者安装二进制包),然后传递--with-apr=/some/path和--with-apr-util=/some/path选项(都是path位于bin目录中的apr / apu-1-config文件)。
获得SSL支持工作也可能需要一些工作,因为solaris ssl库位于通常不被检测到的位置。 确保在你的CFLAGS环境variables和-L/usr/sfw/lib -R/usr/sfw/lib (或者/ usr / sfw / lib / amd64或者sparcv9)中有-I/usr/sfw/include位)在您的LDFLAGS环境variables。 在运行configure之前,需要设置两个variables。 如果你正在构build32位版本,那么你可能只能做--with-ssl=/usr/sfw ,但是如果你需要一个64位版本的版本,subversion不太可能find正确的64位库没有你正确设置CFLAGS / LDFLAGS。
和构buildmod_perl一样,你需要让subversion知道apxs的位置,只需要传递--with-apxs=/path/to/apache/bin/apxs来configuration。
这最后一个提示可能很明显,但以防万一:将构build指令放入脚本(或Makefile)中,以便您可以在新机器上轻松地重复它们或使用稍微不同的configuration选项。
只是在这里回答logging什么对我有用,继马克的非常有用的答案。
由于编译mod_perl看起来不像编译Subversion那样麻烦,所以我从sunfreeware.com安装了Subversion 1.6及其依赖项(包括Apache 2.2.15)。
然后我按照说明下载并构build了mod_perl 。
我不得不编辑/usr/local/apache2/bin/apxs因为它假设perl位于/usr/local/bin而不是/usr/bin但在此之后,编译所有内容并将mod_perl.so放在正确的位置。
安装Perl模块的另一个小问题是针对Solaris附带的标准Perl 5.8,它是使用Sun编译器编译的,而不是gcc编译的,如果你下载并使用它,则会遇到更less的麻烦(确保它的bin目录在gcc之前在你的路上)。
我刚刚意识到OpenCSW包可能是另一个解决scheme。 他们似乎有二进制的Apache,mod_perl和颠覆软件包。 不过,我还没有尝试过。
只需使用Web Stack,Sun对这些产品的集成编译(您可以select性地安装您需要的):
Web Stack软件包括以下软件:
- 服务器软件 – Apache Web服务器,Apache Tomcat,Squid代理服务器,lighttpd。
- 数据库软件 – MySQL服务器。
- 编程环境 – PHP,Perl,Ruby和Python。
- caching软件 – memcached。
完整的指导: http : //wikis.sun.com/display/WebStack/Web+Stack+Getting+Started+Guide