Apache+Trac+SVN环境搭建
-
1 必备条件
1 httpd-2.2.25-win32-x86-no_ssl (Apache Http Server)
2 mod_wsgi-win32-ap22py26-3.3.so (wsgi方式启动trac)
3 python-2.6
4 mod_python-3.3.1.win32-py2.6-apache2.2
5 setuptools-0.6c11.win32-py2.6
6 Babel-0.9.6.win32 (trac 语言支持包)
7 Genshi-0.6.win32
8 pysqlite-2.6.3.win32-py2.6 (python已经集成pysqlite 可选)
9 Trac-1.0.win32
10 Setup-Subversion-1.6.13
11 svn-win32-1.6.13_py
12 TortoiseSVN-1.8.2.24708-x64-svn-1.8.3 (64位windows 可选)
2 环境搭建
2.1 Apache
1,运行httpd-2.2.25-win32-x86-no_ssl.msi,点击Next。
2,选择"I accept the terms in the license agreement",点击Next。
3,点击Next。
4,在服务器信息页面填写必要信息,点击Next。
5,选择"Typical",点击Next。
6,选择安装路径,点击Next。
7,点击"Install",等待安装结束。
8,点击"Finish",安装结束。
9,打开IE,输入http:\\127.0.0.1,出现下面所示It works!,说明Apache运行正常。
2.2 mod_wsgi
将文件mod_wsgi-win32-ap22py26-3.3.so重命名为mod_wsgi.so,并复制到C:\Trac\Apache2.2\modules\目录下。
2.3 Python
1 运行python-2.6.msi,选择"Install for all users",点击Next。
2,选择python安装路径,点击Next。
3,选择python需要安装的机能,点击Next。
4,等待python安装完成,点击"Finish",完成安装。
2.4 mod_python
1,运行mod_python-3.3.1.win32-py2.6-apache2.2.exe,点击"Next"。
2,点击"Next",程序会自动找到Python2.6的安装目录。
3,点击"Next",直到出现选择文件夹的界面,选择Apache的安装目录即可。
4,点击"Finish",完成安装。
2.5 setuptools
1,运行setuptools-0.6c11.win32-py2.6.exe,点击"Next"。
2,程序会自动找到Python2.6的安装目录,点击"Next"。
3,点击"Next",等待安装。
4,点击"Finish",完成安装。
2.6 Babel
1,运行Babel-0.9.6.win32.exe,点击"Next"。
2,程序会自动找到Python2.6的安装目录,点击"Next"。
3,点击"Next",等待安装。
4,点击"Finish",完成安装。
2.7 Genshi
1,运行Genshi-0.6.win32.exe,点击"Next"。
2,程序会自动找到Python2.6的安装目录,点击"Next"。
3,点击"Next",等待安装。
4,点击"Finish",完成安装。
2.8 pysqlite
1,运行pysqlite-2.6.3.win32-py2.6.exe,点击"Next"。
2,程序会自动找到Python2.6的安装目录,点击"Next"。
3,点击"Next",等待安装。
4,点击"Finish",完成安装。
2.9 trac
1,运行Trac-1.0.win32.exe,点击"Next"。
2,程序会自动找到Python2.6的安装目录,点击"Next"。
3,点击"Next",等待安装。
4,点击"Finish",完成安装。
2.10 Subversion
1,运行Setup-Subversion-1.6.13.msi,点击"Next"。
2,点击"Next"。
3,选择安装路径,点击"Next"。
4,点击"Install"。
5,点击"Finish",完成安装。
2.11 svn-win32
1, 将svn-win32-1.6.12_py.zip解压缩。
2, 将解压缩后的2个文件夹(svn和libsvn)Copy到Python2.6\Lib\site-packages目录下。
3,将libsvn目录下的所有dll文件的后缀名变更为"pyd"(除了libsvn_swig_py-1.dll)。
2.12 TortoiseSVN
1,运行TortoiseSVN-1.8.2.24708-x64-svn-1.8.3.msi,点击"Next"。
2,选择"I accept the terms in the License Agreement"。点击"Next"。
3,选择安装路径,其它按默认设置,点击"Next"。
4,点击"Install"。
5,点击"Finish",完成安装。
到此为止,环境构筑部分全部结束。
3 环境配置
3.1 配置环境变量
为了方便操作,在系统环境变量path中,添加如下环境变量。
C:\Trac\Python26
C:\Trac\Python26\Scripts
C:\Trac\Apache2.2\bin
C:\Trac\Subversion\bin
3.2关联SVN和Apache
1,建立项目文件夹
C:\myprogram\svnProject
2,建立svn库
打开cmd,输入以下指令,建立svn项目的文件库(可根据需要建立多个svn库,以下只是针对单个svn库的配置)。
svnadmin create "C:\myprogram\svnProject\svntest1"
-
设置用户及密码文件
htpasswd -c C:\myprogram\svnProject\<filename> <username>
参数:-c 用于生成文件,只在建立第一个用户时使用。
htpasswd -c "C:\myprogram\svnProject\authfile" adminuser01
htpasswd "C:\myprogram\svnProject\authfile" adminuser02
同样生成:devuser01,devuser02,guser01,guser02用户信息。
执行命令后,可以看到生成的用户密码文件authfile,用记事本打开可以看到用户adminuser01,adminuser02以及MD5加密后的密码。
4,设置权限文件
拷贝C:\myprogram\svnProject\svntest1\conf下面的authz文件到C:\myprogram\svnProject\,修改名称为:svnaccessfile,此名称将在Apache安装目录\conf\httpd.conf配置文件中用到。用记事本打开该文件,删除原有内容,重新编辑如下:
[groups]
committers = adminuser01,adminuser02
developers = devuser01,devuser02
guest = guser01,guser02
[/]
* = r
@developers = r
@committers = rw
#if have other svn project ,same as the fellow
[svntest1:/]
@developers = rw
#[svntest2:/]
#@developers = rw
基本含义是根目录下任何人有读权限,committers组有读写权限;developers组有读权限,但是它对svntest1项目有读写权限;guest组仅在根目录下才有读权限。
备注: 如果有日文路径,那要把文件存成UTF8格式,不建议使用日文路径。
5,配置服务
① 从SubVersion的bin目录,将mod_authz_svn.so 和mod_dav_svn.so两个文件Copy到Apache2.2\modules目录下。
编辑Apache安装路径 \conf\httpd.conf文件,去掉如下几行的注释(删除 '#'标记):
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
将下面两行添加到LoadModule部分的最后。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
② 在httpd.conf文件最后添加下面代码。
<Location /svn>
DAV svn
#SVNListParentPath on
#SVNParentPath "C:\myprogram\svnProject"
SVNPath "C:\myprogram\svnProject\svntest1" #当有一个svn项目时用svnpath,当有多个svn项目时用上面两条。
AuthType Basic
AuthName "Subversion please login!"#此处为用户登录时显示信息,可随意
AuthUserFile "C:\myprogram\svnProject\authfile"
AuthzSVNAccessFile "C:\myprogram\svnProject\svnaccessfile"
Require valid-user
SVNAutoversioning on
ModMimeUsePathInfo on
</Location>
配置完毕后,重启Apache服务,访问http://127.0.0.1/svn,用上面创建的对svntest1有访问权限的用户登录SVN,如果登录成功,说明Apache与SVN集成成功。
由于此时版本库尚未上传文件,故看不到任何内容。此外,如果Apache服务起不来,请检查新增代码(路径部分)中有无多余空格。
备注:
只有一个svn库时,使用<Location /svn>,访问http://127.0.0.1/svn即可,或者访问 http://127.0.0.1/svn/<projectname>。
有多个svn库时,使用<Location /svn/>,访问http://127.0.0.1/svn,可列出C:\myprogram\svnProject\下的所有版本库,也可以访问http://127.0.0.1/svn/<projectname>;同时在上面配置文件中使用SVNParentPath。
解释
<Location>
意思是Subversion版本库的URL是http://ipaddress/svn/
DAV svn
告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。
SVNPath
告诉Subversion需要查看的版本库位于D:/var/svnhome/projects之下
AuthType Basic
激活基本认证,就是用户名/密码
AuthName
用来说明弹出要求输入认证信息的对话框信息,可以使用中文.
AuthUserFile
指定使用认证密码的文件
AuthzSVNAccessFile
位置Subversion版本库的访问控制权限的路径文件
Require valid-user
指定只有输入了正确的用户/密码的用户可以访问URL
3.3 关联trac和Apache
1,建立项目文件夹
C:\myprogram\tracProject
2,建立trac项目
打开cmd,输入下面命令
trac-admin "C:\myprogram\tracProject" initenv
trac-admin提示您输入项目名称,输入tractest1,回车。
然后需要输入使用的数据库,这里直接回车使用默认的SQLite。
于是trac-admin开始建立项目环境,当建立完成时,最后一行输出Congratulations!。
3,建立trac平台的用户名和密码文件
htpasswd –c "C:\myprogram\tracProject\tracpassword" tracadmin
htpasswd "C:\myprogram\tracProject\tracpassword" tracuser01
上面建立tracadmin1和tracuser01两个用户,使用下面命令赋予tracadmin管理员权限。
trac-admin "C:\myprogram\tracProject" permission add tracadmin TRAC_ADMIN
备注:此处也可以不建立用户,直接使用上面为svn库建立的用户,并赋予它们TRAC_ADMIN权限即可,然后在下面配置服务中引用对应的用户密码文件即可。
4,生成trac的wsgi脚本
mod_wsgi是Apache的一个模块,用于运行兼容wsgi的Python应用程序,在cmd下输入以下指令。
trac-admin " C:\myprogram\tracProject " deploy " C:\myprogram\tracProject \deploy"
trac-admin会自动建立一个deploy目录,并且生成相应的脚本。我们所需要的文件为C:\myprogram\tracProject \deploy\cgi-bin\trac.wsgi。
5, 配置服务
编辑Apache安装路径 \conf\httpd.conf文件,定位到LoadModule区域的末尾,加入以下内容。
LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / C:\myprogram\tracProject\deploy\cgi-bin\trac.wsgi
<Directory "C:\myprogram\tracProject\deploy\cgi-bin">
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
<LocationMatch "/login">
AuthType Basic
AuthName "Trac"
AuthUserFile "C:\myprogram\tracProject\tracpassword " #文件tracpassword为上面生成的用户密码文件
Require valid-user
</LocationMatch>
保存配置文件,重启Apche。在IE中输入http://127.0.0.1,用上面新建的用户登录Trac管理平台。
3.4 关联trac和SVN
1,添加SVN版本库到Trac
修改C:\myprogram\tracProject\conf \Trac.ini文件,在文件末尾添加如下配置:
[repositories]
.alias = tracProject
.hidden = true
tracProject.description = tractest1
tracProject.dir = C:\myprogram\ svnProject\svntest1
tracProject.type = svn
tracProject.url = http://ipaddress/svn #替换相应的ip地址
备注:当需要添加多个SVN版本库,需要修改[repositories]配置信息。
2,打开源码浏览选项
用admin账户登录trac,点击管理-->插件-->Trac1.0选择下面选项:
SubversionConnector
SubversionMergePropertyDiffRenderer
SubversionMergePropertyRenderer
SubversionPropertyRenderer
点击应用修改。
3.5 TortoiseSVN
1,首先使用前面新建的SVN账户登录TortoiseSVN,然后向SVN服务器提交文件,如下图。
2,访问SVN服务器可以看到刚提交的文件。
3,在Trac中查看刚提交的文件。
-