Apache+Trac+SVN环境搭建

◇◆丶佛笑我妖孽 提交于 2019-11-29 05:03:34

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"

  1. 设置用户及密码文件

    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中查看刚提交的文件。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!