`
xinlanzero
  • 浏览: 246597 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

在Python 2.6下安装Trac 0.12.1项目管理系统

阅读更多

上一篇文章中Python Subversion binding 版本支持有问题,而且Python解释器使用的是Python 2.5不是Python 2.6。

 

本篇文章我们构建一个Python解释器使用Python 2.6.6、项目管理使用Trac 0.12.1、数据库使用MySQL、代码管理使用Subversion 1.6.13的Trac的项目管理系统。

 

所需要的软件包如下:

 Trac 0.12.1,Trac程序< http://trac.edgewall.org/wiki/TracDownload >
 Apache 2.2.16,Web服务器< http://httpd.apache.org/download.cgi >
 Subversion 1.6.13,代码版本管理工具< http://sourceforge.net/projects/win32svn/ >
 Python 2.6.6,Python解释器< http://www.python.org/ >

 mod_python-3.3.2-dev-20080819.win32-py2.6.exe Python的Apache模块非官方< http://vagabonds.info/python/mod_python-3.3.2-dev-20080819.win32-py2.6.exe >
 svn-win32-1.6.13_py.zip,Python 2.6的Subversion binding< http://sourceforge.net/projects/win32svn/ >

 setuptools(ez_setup.py),Python的包构建和发布工具< http://peak.telecommunity.com/DevCenter/setuptools >
 Genshi-0.6(Genshi-0.6.win32.exe),基于 Python 的模板引擎< http://genshi.edgewall.org/wiki/Download >
 Babel-0.9.5,基于 Python 的语言支持插件< http://babel.edgewall.org/wiki/Download >

 MySQL 5.1.51,数据库服务器< http://www.mysql.com/ >
 MySQL-python-1.2.2.win32-py2.6.exe,Python访问MySQL数据库的模块< http://sourceforge.net/projects/mysql-python/ > 非官方 < http://www.codegood.com/archives/4 >

 

安装错误时怎么办?
如果你安装过程中发现某些地方不正常,记住按照下面的方法来纠正:

1.查看错误信息,看是否能找到提示
2.检查有无忘了装的软件
3.检查httpd.conf是否有误
4.修改之后记得重新启动Apache

 

一、安装Apache和subversion

在Apache官方网站上下载2.2.16版的msi安装包,执行即可。安装完毕后用浏览器访问 http://localhost/ ,如能看到Apache的起始页面即安装成功。
Apache2.2默认安装在C:\Program Files\Apache Software Foundation\Apache2.2目录下。

从Subversion上下载Setup-Subversion-1.6.13.msi,执行即可。
Subversion默认安装在C:\Program Files\Subversion目录下。

然后将Subversion与Apache集成在一起(也可参考这篇文章)。
将 C:\Program Files\Subversion\bin 下的下列文件复制到 C:\Program Files\Apache Software Foundation\Apache2.2\modules 目录下:

 mod_authz_svn.so
 mod_dav_svn.so

然后建立代码仓库目录 C:\SVNROOT。

然后修改 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf,查找下面这一行,去掉前面的 # 号。

LoadModule dav_module modules/mod_dav.so

然后在其附近添加以下这一行:

LoadModule dav_svn_module modules/mod_dav_svn.so

之后在 httpd.conf 的末尾添加以下内容:

<Location /repos>
    DAV svn
    SVNParentPath "C:/SVNROOT"
</Location>

然后重新启动Apache。

在 httpd.conf 的末尾添加以下内容:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

<Location /balancer>
  SetHandler balancer-manager
  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1
</Location>

然后重新启动Apache。

之后试着访问 http://localhost/balancer,你会看到下方的内容如下:

Server Version: Apache/2.2.16 (Win32) DAV/2 SVN/1.6.13

如果这里显示了 SVN/1.6.13 ,则说明安装成功。

 

二、安装Python、mod_wsgi和SVN binding

1、从Python官方网站下载Python 2.6的msi安装包进行安装,假设安装到C:\Python26目录下。

 

2、从mod_python的非官方网站上下载mod_python 3.3.2的Win32版(http://vagabonds.info/python/mod_python-3.3.2-dev-20080819.win32-py2.6.exe)。

安装时它会问你Apache的安装位置,输入C:\Program Files\Apache Software Foundation\Apache2.2即可。

最后打开 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf,查找 LoadModule,加入下面这一行:

LoadModule python_module modules/mod_python.so

然后重新启动Apache。

之后试着访问 http://localhost/balancer,你会看到下方的内容如下:

Server Version: Apache/2.2.16 (Win32) DAV/2 SVN/1.6.13 mod_python/3.3.2-dev-20080819 Python/2.6.6

如果这里显示了 mod_python/3.3.1 Python/2.6.6 则说明安装成功。

 

3、安装Subversion binding使Python支持Subversion。到刚才下载Subversion的地方 下载 svn-win32-1.6.13_py.zip 文件并安装。安装前请看README.txt。

Python 2.5以上的用户请注意:
从 Python 2.5+ 将不再使用 .dll 扩展名的方式加载模块,你必须手动将目录 libsvn下所有*.dll文件(libsvn/*.dll)重新命名为 .pyd的扩展名。请不要改变文件 libsvn_swig_py-1.dll的文件名。
目录 libsvn 和 svn 应该被解压缩到 C:\Python26\Lib\site-packages directory 目录下。

 

4、请到 http://peak.telecommunity.com/DevCenter/setuptools 下载 ez_setup.py 并安装 setuptools:

安装命令:ez_setup.py setuptools==dev

 

5、请到 http://genshi.edgewall.org/wiki/Download下载 Genshi-0.6.win32.exe 并安装Genshi-0.6:

 

6、为了让Trac显示中文,在安装Trac以前,请到 http://babel.edgewall.org/ 下载 Babel-0.9.5.win32.exe 并安装Babel。

 

三、安装MySQL和MySQLdb

到MySQL官方主页下载最新版5.1.51(mysql-5.1.51-win32.msi)并安装。请在安装MySQL前仔细阅读http://trac.edgewall.org/wiki/MySqlDb

 

1、创建数据库,然后授权用户名、密码。
mysql> CREATE DATABASE trac DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.02 sec)

mysql> GRANT ALL ON trac.* TO tracuser@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

MySQL的数据库连接字符串如下:

mysql://tracuser:password@localhost/trac

 

2、Trac 数据库必须配置成 utf8 character set 和 utf8_bin collation type。

 

安装完Trac以后,检查方法如下:
mysql> USE trac;
Database changed
mysql> SHOW VARIABLES WHERE variable_name IN ('character_set_database', 'collation_database');
+------------------------+----------+
| Variable_name          | Value    |
+------------------------+----------+
| character_set_database | utf8     |
| collation_database     | utf8_bin |
+------------------------+----------+
2 rows in set (0.01 sec)

mysql> SHOW FULL COLUMNS FROM 'node_change';
+-------------+-------------+-----------+-
| Field       | Type        | Collation |
+-------------+-------------+-----------+-
| rev         | varchar(64) | utf8_bin  |
| path        | text        | utf8_bin  |
| node_type   | varchar(32) | utf8_bin  |
| change_type | varchar(32) | utf8_bin  |
| base_path   | text        | utf8_bin  |
| base_rev    | varchar(64) | utf8_bin  |
+-------------+-------------+-----------+-
6 rows in set (0.00 sec) 

除此以外所有表必须是 InnoDB 或 NDB 类型,因为 Trac 使用的事务机制不支持 MyISAM 类型的表。

 

3、为了让Python支持MySQL,我们还需要安装MySQL-python-1.2.2.win32-py2.6模块。到http://sourceforge.net/projects/mysql-python/或者http://www.codegood.com/archives/4下载1.2.2版并安装。

安装结束之后,确定 C:\Python26\Lib\site-packages\MySQLdb 目录存在。

 

四、安装Trac

最后终于轮到主角Trac出场了。在Trac下载页面上下载 Trac安装程序(Trac-0.12.win32.exe)并安装。

然后建立项目目录 C:\Projects。

然后打开 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf,在最末尾添加以下内容:

<Location /projects>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir C:/Projects
    PythonOption TracUriRoot /projects
</Location>

然后重新启动Apache,访问 http://localhost/projects/,你会看到Available Projects字样,则说明安装成功。至此安装全部完毕。

 

五、建立项目

下面我们要建立一个实际开发中使用的项目。我们为这个项目命名为 hello。

首先要建立一个代码仓库。打开命令行,输入以下命令:

C:
cd C:\SVNROOT
md hello
cd hello
svnadmin create .

注意最后空格后有个符号“.”

然后打开浏览器,访问 http://localhost/repos/hello/ 。如果你上面的设置都正确,你将会看到下面的内容:

hello - Revision 0: /
----------------------------------------------
即说明代码仓库建立成功,而 http://localhost/repos/hello/ 就是代码仓库的 URL。

然后建立数据库。从开始菜单中启动MySQL的 MySQL Command Line Client工具,新建一个数据库 trac,注意将字符编码设置为UTF8。

然后建立Trac项目。打开命令行,输入以下命令:

C:
cd C:\Projects
C:\Python26\Scripts\trac-admin hello initenv

trac-admin 为Trac的管理工具,hello为项目名,initenv命令指示Trac新建一个项目。然后按照下面的内容输入:

Project Name [My Project]> Hello World
Database connection string [sqlite:db/trac.db]> mysql://<username>:<password>@localhost/trac

数据库连接那一行,<username>和<password>分别为安装MySQL时设置的用户名和密码。如果创建失败,则需要删除 C:\Projects\hello 之后再重试。
mysql://tracuser:password@localhost/trac

最后提示
Congratulations!
表示你安装成功了。

打开浏览器,访问 http://localhost/projects/hello 即可看到Trac的界面了。

 

六、设置HTTP认证
在Trac界面右上方有个Login菜单,通过这个菜单登录之后,创建bug或者做其他修改时就不用每次都输入用户名。不过这个菜单需要单独配置才能正常工作。

首先我们要生成密码文件。打开命令行,输入以下命令:

C:
cd C:\Projects
"C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd" -c trac.htpasswd admin
Automatically using MD5 format.
New password: *****
Re-type new password: *****
Adding password for user admin
即可生成密码文件 trac.htpasswd 。

 

以后向该密码文件里追加用户只需这样即可。
"C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd" trac.htpasswd user

 

然后编辑 httpd.conf,在最末尾加入以下内容:

<LocationMatch "/projects/[^/]+/login">
    AuthType Basic
    AuthName "Trac"
    AuthUserFile C:/Projects/trac.htpasswd
    Require valid-user
</LocationMatch>

然后重新启动Apache。

 

为了访问“管理”(Admin)标签,必须对用户admin赋予TRAC_ADMIN权限。打开命令行,输入以下命令:
C:
cd C:\Projects
C:\Python26\Scripts\trac-admin hello permission add admin TRAC_ADMIN

 

至此我们基于Trac的项目管理系统就安装完成了。

 

1
0
分享到:
评论
1 楼 caoyujia 2011-01-13  
楼主介绍的很详细
但有1处出现了问题 还想请教
1;
在mysql运行下面这句话报错了
mysql> SHOW FULL COLUMNS FROM 'node_change';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ''node
_change'' at line 1
试着吧''号删除 报了一个不能找到表名的错
mysql是5.1.51的

相关推荐

Global site tag (gtag.js) - Google Analytics