2022年Apache+Trac+SVN搭建项目管理服务器的安装与配置详解 .pdf
Apache+Trac+SVN 搭建项目管理服务器的安装与配置详解:1.安装平台本安装基于Windows vista 环境下进行安装与配置的,其它windows 版本都可用;搭建此项目管理服务器首先必须要安装Apache 服务器 . 1.1 安装1.1.1 安装 Apache (1)下载 Apache 地址 http:/httpd.apache.org/download.cgi 注意: Apache 低于 2.0.54 的 Windows版本的存在编译问题,低于2.0.54 的版本不能与Subversion 1.2 一起工作。 2.2.X 目前不能很好支持SVN 1.4.3。所以当前建议下载Apache 2.0.63 版本(2) 安装下载完成后运行apache_2.0.63-win32-x86-no_ssl.msi ,根据提示进行操作。遇到系统要求输入 SERVER 的 URL 时,如果你的服务器没有DNS 名称,请直接输入IP 地址(此文件也可在安装后进行修改,该文件位于Apache Group/Apache2/conf/httpd.conf文件) 。注意:如果你已经有了IIS 或其他监听80 段口的程序, 安装会失败, 如果发生这种情况,直接到程序的安装目录Apache GroupApache2conf ,打开 httpd.conf 。编辑文件的Listen 80为其他可用的端口,例如 Listen 8080 ,然后重新启动这样就不会那个问题了,或者将其它应用的端口进行改之。(3)检查安装完成后浏览http:/localhost/ 若成功,可看到apache欢迎页面。1.1.2 安装 Subversion (1)下载Subversion 地址: http:/subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 在本实例中,选择下载svn-win32-1.4.6.zip 此版本 . (2)安装名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 将 svn-win32-1.4.6.zip 解压到安装程序的目录下; (如果下载的是exe安装文件, 可以根据指导安装,Subversion 会自动认识到你安装了Apache,你就几乎完成了工作),本实例中采用解压方式进行安装,它不会自动找到Apache 服务器,所以你还有额外的步骤。(3)后续步 骤1 从svn-win32-1.4.6bin 中 将mod_authz_svn.so mod_dav_svn.so 复 制 到Apache GroupApache2modules 下, 再将 svn-win32-1.4.6bin 目录下的所有dll文件全部复制到Apache GroupApache2bin 文件夹下。步骤 2 找到 Apache GroupApache2confhttpd.conf文件,然后去掉如下几行的注释(删除 #标记 ): #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_module modules/mo 将下面两行添加到LoadModule 部分的最后。LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so 进行如上后续修改后完成了SVN+Apache 之间的 WebDav 的工作了。重启Apache 以后可看到如下图 : 这是安装最终的图,图中状态栏显示Apache/2.0.63 (Win32)SVN1.4.6 DA V/2 是由于还安装了mod_python ,此步骤稍后将讲解,如上安装好后应显示为Apache/2.0.63( Win32)SVN1.4.6 DA V. 1.2 配置1.2.1 建立版本库首先建立一个用于存在SVN 项目的版本库,本例中在D 盘驱动器中建立目录var/svnhome,可通过如下命令建立版本库,当然如果你需要建立多个版本库只需将名称进行换名即可。首先以 cmd 命令窗口进入svn-win32-1.4.6bin 目录结构下,输入:svnadmin create -fs-type fsfs D:/var/svnhome/projects回车, 等待提示创建完成;完成后则进名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 行相关密码以及权限设置。1.2.2 设置密码文件以 cmd 命令窗口进入路径Apache GroupApache2 bin 目录下,然后输入: htpasswd -c D:/var/svnhome/projects/conf/ 本例中 filename 名称使用passwordfile,username 名称使用admin(注意 filename 无需后缀名 ),这样便可在var/svnhome/projects/conf 目录下创建一个用户名为admin 的 passwordfile 文件,此文件将在后面配置权限所用。此后添加用户,可使用如下命令:htpasswd filename 删除用户,使用如下命令:htpasswd -D filename 若对密码不想加密可使用-cp 参数,windows 平台下默认是 MD5 加密。1.2.3 设置权限文件用文本编辑器在var/svnhome/projects/conf 路径下生成名为svnaccessfile的文件,此名称将在Apache GroupApache2confhttpd.conf配置文件中所用,此处不使用扩展名。编辑一下内容:groups committers = admin developers = Allen / * = r developers = r committers = rw projects:/ developers = rw 基本含义是根目录下任何人有读权限,committers 组有读写权限;admin 对 projects 读写权限,而 developers 组只有读的权限。备注 : 如果有中文路径,那要把文件存成UTF8 格式 ,不建议使用中文路径,这在编程当中是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 严格禁止的 . 1.2.4 配置服务编辑 Apache GroupApache2confhttpd.conf文件,添加下面代码。 DAV svn SVNPath D:/var/svnhome/projects AuthType Basic AuthName Subversion repositories AuthUserFile D:/var/svnhome/projects/conf/passwordflie AuthzSVNAccessFile D:/var/svnhome/projects/conf/svnaccessfile Require valid-user SVNAutoversioning on ModMimeUsePathInfo on 备注 : 如果使用 可列出D:/var/svnhome/projects 下的版本库 ,若为 则 不 能 访 问http:/127.0.0.1/svn下 的 项 目 , 而 只 能 这 样 访 问 , 如http:/127.0.0.1/svn/ 配置内容说明设置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 解释 意思是 Subversion 版本库的URL 是 http:/ipaddress/svn/ DAV svn 告诉 Apache 是哪个模块响应那个URL 的请求此刻是Subversion 模块。本文来自 Svn 中文网 转发请保留本站地址:http:/ SVNPath 告诉 Subversion 需要查看的版本库位于D:/var/svnhome/projects 之下AuthType Basic 激活基本认证,就是用户名/密码AuthName 用来说明弹出要求输入认证信息的对话框信息,可以使用中文 . AuthUserFile 指定使用认证密码的文件AuthzSVNAccessFile 位置 Subversion 版本库的访问控制权限的路径文件Require valid-user 指定只有输入了正确的用户/密码的用户可以访问URL 另外如果当此时通过访问http:/127.0.0.1/svn 提示 403 Forbidden 错误的信息的话,主要是由于 svnserve.conf 此文件中的 general内容 password-db = passwordfile 内容加入 (或者将原来的#去掉, 同时将 passwd 修改你所创建的密码文件,本例中为passwordfile), 也可以实现根目录的访问了!1.25 安装 TortoiseSVN(可选)此工具是客户端软件, 主要可以用于从服务器上check 版本库项目以及updata与 commit名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 等相关 SVN 的管理操作,其下载地址为:http:/ 另外还可以下一个语言包,都在给其的subversion 官方网站上能下到. 1.3 Trac 的安装Trac 是一个轻量级的项目管理工具,是一个基于web 的应用程序。 Trac 是用 Python 语言开发的,需要数据库 ( SQLite, PostgreSQL, MySQL 等).的支持才能运行。 对于 HTML 渲染,在 Trac 0.11 版本之前用的是ClearSilver,以后推荐用的是Genshi. 在 Trac 的官网上有有一篇安装指南,针对Trac0.11 版本的。上面可以看到这时0.11 的正式版 还 没 有 发 布 , 我 安 装 的 是0.11dev版 的 。 其 在 线 安 装 方 法 地 址 为 :http:/trac.edgewall.org/wiki/TracInstall#TracInstallationGuidefor0.11 1.3.1 安装前必备的软件(注意软件的版本及安装的顺序):其中有很多软件是可以下到zip 包的,但不建议下载包形式文件,因为解压python 后有可能不能用,所以建议使用exe 安装版的来自动完成识别操作。1.安装 Python,下载: python-2.5msi ,进行默认安装。2.安装 Genshi 模板系统,属于页面表示层, 下载 Genshi-0.4.4.win32.exe , 安装时会识别Python安装目录。3.安装 Subversion Python Bindings :svn-python-1.4.6.win32-py2.5.exe ,安装时会识别Python安装目录。4.安装PySQLite, 下载pysqlite-2.4.1.win32-py2.5.exe ,安装时会识别Python 安装目录。PySQLite 是 SQLite 和 Python 绑定的轻量级数据库引擎,它是Trac 默认的数据库。1.3.2 安装 Trac(0.11dev) 在安装 Trac 之前,首先要安装setuptools ,安装步骤如下:在主页中将ez_setup.py 的文件右击另存给下载下来(如保存到D:python 下面) ,以 CMD 命令窗口方式进入python 该目录执行 python ez_setup.py 即可安装和python 版本对应的setuptools 了. 注意: ez_setup.py 文件最好放在安装python 的根目录下,这样进入该目录以后就可以直接执行 python ez_setup.py 命令即可完成setuptools 的安装了 . 利用 TortoiseSVN 工具 checked 出 Trac 版本库 ,然后通过命令进行安装;其SVN checkout 地址为: http:/svn.edgewall.org/repos/trac/trunk ,本例中将此内容check 于 D:/trac 目录中, 然后使用 cmd 命令窗口进入到下载的trac 根目录下输入:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - D:pythonpython setup.py install (如果 trac 与 python 放在同一目录下或者将python 增加到path 环境变量中,可直接写成python setup.py install) 等待安装完成。注意:此处不建议在官方网站上下载0.11beta1 版,而建议使用上述checked 的版本,因为0.11beta1 版本安装后可能在创建一个Trac Environment 时出现异常现象, 所以建议大家使用0.11dev 版。1.3.3 配置 Trac 环境 . 完成上述的安装后,就可以创建一个TracEnvironment ,它是 Trac 存储信息的地方,如wiki pages, tickets, reports, settings, 等。1. 通过 trac-admin 创建一个Trac Environment 在本例中首先在D 盘的 var 目录下新建一个trachome 目录,然后以 CMD 命令窗口方式进入D: pythonScripts 目录下输入: trac-admin D:/var/trachome/projects initenv ,然后根据提示输入项目的名字 (本例中为projects),然后提示询问数据库连接字符串类型,本例中使用的是sqlite,故采用默认就可以了。直接回车接下来是的是: Please specify the type of version control system, By default, it will be svn. If you dont want to use Trac with version control integration,choose the default here and dont specify a repository directory . in the next question. Repository type svn 询问版本库类型,也是默认SVN ,直接回车 . Please specify the absolute path to the version control repository, or leave it blank to use Trac without a repository. You can also set the repository location later. Path to repository /path/to/repos D:/var/svnhome/projects 询问源码库位置,这个就是本例中刚才SVN 里建立了这个项目的源码库,输入即可。回车注意: 此处一定要填写正确否则是没法将SVN 的版本库与Trac 进行联系起来。 不过在这里填 写 错 误 后 还 是 可 以 通 过 配 置 文 件 进 行 修 改 的 。 在 本 例 中 此 配 置 文 件 位 于 : D: vartrachomeprojectsconf 下的 trac.ini 与 trac.ini.sample 两个文件,只需将其中srepository_dir值修改成: D:/ var/svnhome/projects 即可。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - Please enter location of Trac page templates. Default is the location of the site-wide templates installed with Trac. Templates directory D:Python25sharetractemplates 询问模板路径,这个默认。回车接下来就是自动生成一系列模板,最后显示Congratulations! 完成操作。然后以 cmd 命令窗口方式进入D: pythonScripts 文件夹下输入:tracd -p 8080 D:/var/trachome/projects 当看到Serving on 0.0.0.0:8080 view at http:/127.0.0.1:8080/ 时,就表示服务器启动成功了,可以打开浏览器就可以看到svn 版本库中的项目资源了,到此实现了Trac 与 SVN 的集成,但还未完成与Apache 的集成,下面就带领大家完成这一最后的过程。本文来自Svn中文网转发请保留本站地址:http:/ 1.4 Apache+Trac+SVN 集成上面的配置是运行在一个独立的服务器上,只能运行一个项目,一般只用于自己单机访问。考虑到我们前面安装的SVN 是运行在Apache 服务器上,所以我们最好也让Trac 运行在Apache 服务器上,便于网上共享;而且和Apache 集成有很多优点,比如充分利用apache的强大功能以及ModPython 的高效率,便于管理与控制,很方便支持ssl 等等。在官方网站上提供的安装指南上面提供了三种方法CGI, FastCGI and mod_python. 为了提高性能,推荐使用后面两种,本例中安装时采用第三种也就是mod_python 方法。1、在http:/www.modpython.org/ 页面下载相应的安装程序,注意版本对应。我下载的是mod_python-3.3.1.win32-py2.5-Apache2.0.exe ,然后安装,安装过程中会要求选择apache 的安装目录,并且会自动把mod_python.so 复制到 modules 目录;完成后还要进行配置,类似于 SVN 和 Apache 的集成,可参见官方网站的在线文档,下面就具体但要在本例中的配置做法。2、配置 Apache 配置 ModPython 在 Apache GroupApache2conf 目录下 httpd.conf 文件中的 LoadModule 部分最后加入下面一行:LoadModule python_module modules/mod_python.so 配置 trac 服务在 Apache GroupApache2conf 目录下 httpd.conf 文件中的最后加入下面内容:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - # TRAC Alias /trac D:/ trac/cgi-bin/trac.cgi SetHandler mod_python PythonInterpreter main_interpreterPythonHandler trac.web.modpython_frontend PythonOption TracEnv D:/software_tools/var/trachome/projects PythonOption TracUriRoot /trac/projects 然后就通过http:/127.0.0.1/trac/projects来访问,点击导航栏上的“Browse Source ”就可以看到 svn 库中项目资源。3、配置用户身份的验证Trac 可以使用Apache 的身份验证。创建密码文件 ,如为 projects 创建密码文件,Allen 为用户名:以 cmd 命令窗口方式进入到Apache GroupApache2bin 文件夹下输入:htpasswd -c D:/var/trachome/projects/conf/trac.passwd Allen New password: * #提示输入密码Re-type new password: * #再输入一次Adding password for user Allen #成功配置身份验证#设置 Allen 的 Trac 用户验证 AuthType Basic AuthName Projects AuthUserFile D:/software_tools/var/trachome/projects/conf/trac.passwd 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - Require valid-user 完成后重启Apache 服务器,然后浏览http:/127.0.0.1/trac/projects ,点击 Login,将看到如下效果图:4、Trac 的授权设置在 Trac 0.11 以前的版本需要安装WebAdmin 插件才能以web 的方式管理用户及授权,以后的版本就不在需要了, 已经集成了。 前面创建的 Apache 的身份验证, 都不具有 TRAC_ADMIN权限,下面我们重新创建一个admin 用户,然后授予TRAC_ADMIN权限:#在原来的密码文件中新增一个admin 用户以 cmd 命令窗口方式进入到Apache GroupApache2bin 文件夹下输入: htpasswd -m D:/software_tools/var/trachome/projects/conf/trac.passwd admin New password: * Re-type new password: * Adding password for user admin 然后为 admin 用户授权TRAC_ADMIN 以 cmd 命令窗口方式进入到pythonScripts 目录下输入命令:trac-admin D:/software_tools/var/trachome/projects permission add admin TRAC_ADMIN重新启动Apache 服务器完成后再以admin 帐号 Login ,在导航栏的search 的最后面就会看到Admin,点击进入可以看到如下效果图:进行如下授权设置以后,对于Browse Source 里面的内容的所有人依然可见,这在权限中是禁止的, 所以可以通过将两者配置合并一下,即可达到需要输入用户名和密码的效果,合并名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 后的配置文件内容应为:# TRAC Alias /trac D:/ trac/cgi-bin/trac.cgi SetHandler mod_python PythonInterpreter main_interpreterPythonHandler trac.web.modpython_frontend PythonOption TracEnv D:/software_tools/var/trachome/projects PythonOption TracUriRoot /trac/projects AuthType Basic AuthName Projects AuthUserFile D:/software_tools/var/trachome/projects/conf/trac.passwd Require valid-user 另外还可以通过vartrachomeprojectsconf 目录下的trac.ini 文件进行版本库的权限控制,将trac.ini 中的 trac 项 authz_file 值修改成与SVN 版本控制权限一致。本例中为: trac authz_file = D:/ var/svnhome/projects/conf/ svnaccessfile 此时在没有登陆的情况下Browse Source 项的内容是无法查看的,提示用户Insufficient permissions to access 权限不够,此方法同样也实现了权限的控制。至此, Apache+SVN+Trac 的集成到此完毕了备注:如果启动时出现错误的话,可将将svn-win32-1.4.6bin目录下的所有dll 文件全部复制到 Apache GroupApache2 cgi-bin 目录下,另将下载下来的目录下的cgi-bin 文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 夹内容复制到Apache GroupApache2 cgi-bin 目录下 . 本实例课程详解到此结束,在接下来的工作后期将会推出关于如何与Eclipse 中进行协同工作开发的课程!本文来自Svn中文网转发请保留本站地址:http:/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -