2009年3月26日星期四

freebsd+apache+svn+trac

参考:
http://www.svn8.com/svnpz/20080310/276_3.html
http://blog.dayuer.com/freebsdapachesubversiontrac
http://www.akaedu.org/bbs/redirect.php?tid=15619&goto=lastpost

首先更新ports到最新

dev# cd /usr/ports/www/apache22
dev# make WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes
WITH_SSL_MODULES=yes WITH_BERKELEYDB=db42 install clean
dev# cd /usr/ports/devel/subversion
dev# make -DWITH_SVNSERVE_WRAPPER -DWITH_MOD_DAV_SVN
-DWITH_APACHE2_APR install clean

安装完成后,我们来初始化仓库目录:

dev# mkdir -p /data/svn/wiki
dev# svnadmin create /data/svn/wiki
dev# chown -R www:www /data/svn
这里,使用 www:www 用户/组是由于我们是通过 Apache 来提供访问支持。设置 Apache 的配置文件 /usr/local/etc/apache22/httpd.conf

重启apache的时候发现有一个dav_module的错误。后来发现是load了两次。我就把后面的那个dav_module注释掉了。注意注释前面的那个会出错的。
然后在/usr/local/etc/apache22/Includes 下编辑svn.conf

dev# vi /usr/local/etc/apache22/Includes/svn.conf

DAV svn
SVNPath /svn/repos
AuthType Basic
AuthName "Feloo Subversion Repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
SVNListParentPath on #根目录可以访问

使用 htpasswd 创建验证用户:

dev# htpasswd -cm /etc/svn-auth-file admin
最后,在 /etc/rc.conf 文件中设置:

apache22_enable="YES"
启动 Apache 后,可以通过 http://you.host.nameOrIP/svn 访问你的 Subversion 仓库了(这里假设你的 Apache 监听在 80 端口)。至于客户端,在 Windows 下可以使用 TortoiseSVNn,相当不错工具。以上步骤在 FreeBSD 6.1-RC 环境下试验成功,你可以进行适当的设置,让 Apache 支持 SSL,这样,你的 svn 将更加安全。

接下来安装trac

dev# cd /usr/ports/www/trac

dev# make install clean
这样就安装好了,简单吧。接下来开始initevn

dev# mkdir -p /data/www/projects/wiki

dev# trac-admin /data/www/projects/wiki initenv

dev# chown -R www:www /data/www/projects/wiki (这一步很重要哦。如果没有修改owner下面和Apache集成之后会出现没有权限的错误不能正常显示)
操作中会提示一些信息,提示subversion 的 repository地址就是前面我们创建的repository /data/svn/wiki其他都不用设置这样项目的环境就建立好了

你可以修改 /data/www/projects/wiki/conf/trac.ini配置环境
修改下边地址就可以为trac 项目换你自己的logo
[header_logo]
src = common/trac_banner.png

启动standalone服务器tracd
dev# tracd --port 8000 data/www/projects/
这样就可以通过http://you.host.nameOrIP:8000 查看到安装成功的trac了.这算是基本完成了。接下来就是使用apache来运行trac,需要mod_python 或者 mod_wsgi 的支持。这里我选择了mod_python,因为在ports里面有现成的。

dev# cd /usr/ports/www/mod_python3

dev# make install clean
这里不能安装/usr/ports/www/mod_python 因为这里需要mod_python 3.1.3+ /usr/ports/www/mod_python 的版本是 2.7.11。
安装完成之后修改Apache的配置加载安装好的mod_python.

dev# vi /usr/local/etc/apache22/httpd.conf

LoadModule python_module libexec/apache22/mod_python.so
添加trac的Location配置

dev# vi /usr/local/etc/apache22/Includes/trac.conf


SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /data/www/projects
PythonOption TracUriRoot /trac


AuthType Basic
AuthName "Feloo Trac Projects"
AuthUserFile /etc/svn-auth-file
Require valid-user


这里需要注意的是:
PythonOption TracEnv /data/www/trac #单个项目时用这样写 PythonOption TracEnvParentDir "/data/www/trac" #多个项目时这样写


这里使用的认证文件和svn的相同。一切都ok了,重启Apache
dev# /usr/local/etc/rc.d/apache22 restart
查看http://you.host.nameOrIP/trac 一切正常,恭喜你安装成功了

没有评论: