Apache+Trac+SVN环境搭建

  1. 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:TracApache2.2modules目录下。

    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.6Libsite-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:TracPython26

    C:TracPython26Scripts

    C:TracApache2.2in

    C:TracSubversionin

    3.2关联SVN和Apache

    1,建立项目文件夹

    C:myprogramsvnProject

    2,建立svn库

    打开cmd,输入以下指令,建立svn项目的文件库(可根据需要建立多个svn库,以下只是针对单个svn库的配置)。

    svnadmin create "C:myprogramsvnProjectsvntest1"

    1. 设置用户及密码文件

      htpasswd -c C:myprogramsvnProject<filename> <username>

      参数:-c 用于生成文件,只在建立第一个用户时使用。

      htpasswd -c "C:myprogramsvnProjectauthfile" adminuser01

      htpasswd "C:myprogramsvnProjectauthfile" adminuser02

    同样生成:devuser01,devuser02,guser01,guser02用户信息。

    执行命令后,可以看到生成的用户密码文件authfile,用记事本打开可以看到用户adminuser01,adminuser02以及MD5加密后的密码。

    4,设置权限文件

    拷贝C:myprogramsvnProjectsvntest1conf下面的authz文件到C:myprogramsvnProject,修改名称为:svnaccessfile,此名称将在Apache安装目录confhttpd.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.2modules目录下。

    编辑Apache安装路径 confhttpd.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:myprogramsvnProject"

    SVNPath "C:myprogramsvnProjectsvntest1" #当有一个svn项目时用svnpath,当有多个svn项目时用上面两条。

    AuthType Basic

    AuthName "Subversion please login!"#此处为用户登录时显示信息,可随意

    AuthUserFile "C:myprogramsvnProjectauthfile"

    AuthzSVNAccessFile "C:myprogramsvnProjectsvnaccessfile"

    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:myprogramsvnProject下的所有版本库,也可以访问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 racProject

    2,建立trac项目

    打开cmd,输入下面命令

    trac-admin "C:myprogram racProject" initenv

    trac-admin提示您输入项目名称,输入tractest1,回车。

    然后需要输入使用的数据库,这里直接回车使用默认的SQLite。

    于是trac-admin开始建立项目环境,当建立完成时,最后一行输出Congratulations!。

    3,建立trac平台的用户名和密码文件

    htpasswd –c "C:myprogram racProject racpassword" tracadmin

    htpasswd "C:myprogram racProject racpassword" tracuser01

    上面建立tracadmin1和tracuser01两个用户,使用下面命令赋予tracadmin管理员权限。

    trac-admin "C:myprogram racProject" permission add tracadmin TRAC_ADMIN

    备注:此处也可以不建立用户,直接使用上面为svn库建立的用户,并赋予它们TRAC_ADMIN权限即可,然后在下面配置服务中引用对应的用户密码文件即可。

    4,生成trac的wsgi脚本

    mod_wsgi是Apache的一个模块,用于运行兼容wsgi的Python应用程序,在cmd下输入以下指令。

    trac-admin " C:myprogram racProject " deploy " C:myprogram racProject deploy"

    trac-admin会自动建立一个deploy目录,并且生成相应的脚本。我们所需要的文件为C:myprogram racProject deploycgi-bin rac.wsgi。

    5, 配置服务

    编辑Apache安装路径 confhttpd.conf文件,定位到LoadModule区域的末尾,加入以下内容。

    LoadModule wsgi_module modules/mod_wsgi.so

    WSGIScriptAlias / C:myprogram racProjectdeploycgi-bin rac.wsgi

    <Directory "C:myprogram racProjectdeploycgi-bin">

    WSGIApplicationGroup %{GLOBAL}

    Order deny,allow

    Allow from all

    </Directory>

    <LocationMatch "/login">

    AuthType Basic

    AuthName "Trac"

    AuthUserFile "C:myprogram racProject racpassword " #文件tracpassword为上面生成的用户密码文件

    Require valid-user

    </LocationMatch>

    保存配置文件,重启Apche。在IE中输入http://127.0.0.1,用上面新建的用户登录Trac管理平台。

    3.4 关联trac和SVN

    1,添加SVN版本库到Trac

    修改C:myprogram racProjectconf Trac.ini文件,在文件末尾添加如下配置:

    [repositories]

    .alias = tracProject

    .hidden = true

    tracProject.description = tractest1

    tracProject.dir = C:myprogram svnProjectsvntest1

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

------山的那一边
原文地址:https://www.cnblogs.com/mountain2011/p/3803134.html