博客搬家

    我本是公共博客(想不出其他的好叫法)的坚定拥护者。既然有这么多免费好用的博客服务商,为啥还要自己再去架设一个服务器。却不想自己一拍脑袋,然后就去整了个自己的独立博客。只能说世事难料,很多时候自己都搞不清自己。
    换地方YY了,这里就不再更新了。
    新的博客地址是:http://vik.haoluobo.com/blog/
    此外还将feed交给feedsky给托管了,feed地址是:http://feed.feedsky.com/vicalloy

发表在 未分类 | 留下评论

最近比较背运

    或许最近真的是比较背运,今天又将衣服给搞脏了。
    前天晚上回家,黑灯瞎火的,一不小心踩到了泥巴之类的东西。第二天一看,鞋子白了一半,似乎是踩到水泥。庆幸自己带了餐巾纸,擦过后还不少。然后在半路上买了包子。一口咬下去,包子的汁溅了一身。满身的包子味。
    今天在食堂吃饭,和同事打了声招呼,一转身餐盘装到一个MM。回去一看,袖子又脏了。

发表在 鸡毛蒜皮 | 2条评论

Google App Engine学习日志(三)不写了-_-,最后写点感受

    又整了几天的GAE,感觉也没什么好写的了。除了API部分和Django有些不同,其他的开发基本和Django差不多,边查手册变写也没啥问题(感觉Google的手册写的不是太好)。数据库部分感觉一些不是太习惯,自的管理后台比Django差太多,想手动编辑数据非常麻烦。数据库的变更也是一个麻烦事。新加属性后必须将数据库里的数据全部取出来重新put(保存)一次,不然所有用到该字段的地方都会查不出任何的东西。

发表在 编程 | 留下评论

Google App Engine学习日志(二)选个葫芦,开始自己的新工程

    GAE的API手册厚厚的一叠,如果要全部看完再动手,那估计还不得看完热情就已经跑光了。将GAE的入门手册看完后,我决定先找个范例工程,然后开始照葫芦画瓢。
    最终锁定了两个工程OnlyPy和Rietveld。
OnlyPy
    OnlyPy是国人用GAE写的一个Blog系统。我简单的看了下它的代码,还比较简单,挺具有参考价值的。
项目地址:http://code.google.com/p/onlypy/
演示站点(作者的Blog):http://onlypython.appspot.com/
Rietveld
    从Google内部开源出来的代码审核工具,据说是蟒爹的作品(Guido)。有了Google和蟒爹做招牌,这东西自然要多看两眼了。只是这东西的代码量并不太少,而且将非常多的代码都写在同一个文件里,阅读起来挺不爽的。
项目地址:http://code.google.com/p/rietveld/
演示站点:http://codereview.appspot.com/

选择好葫芦后就要开始画了。我根据以往的习惯,将项目的目录结构整理好,然后今天的工作先到此结束,改天继续。
整理好的项目结构如下。
/myProject/google apps/haoluobo/
|~haoluobo/将站点的主要文件都丢到haoluobo这个包下
| |~portal/我习惯将首页信息放到portal目录,然后将顶层的所有url转发给portal.urls
| | |+templatetags/
| | |-__init__.py
| | |-urls.py
| | `-views.py
| `-__init__.py
|~script/将些常用的命令写成bat,这样直接双击就可以执行了(可以偷懒一点点)。
| |-clear_tmp.bat*
| |-runserver.bat*
| |-runserver_with_clear.bat*
| `-update.bat*
|+static/程序用到的静态文件
|+templates/模板文件
|~vik/放自己通用工具的目录,目前还没啥内容
| |~utils/
| | |~gae/
| | | |-__init__.py
| | | `-webutils.py
| | `-__init__.py
| `-__init__.py
|-app.yaml
|-django.zip
|-haoluobo_bootstrap.py
|-index.yaml
|-settings.py
|-tags
`-urls.py

发表在 编程 | 留下评论

2008关键词

2008有着太多的喧嚣,或许是这个世界沉寂了太久有着太多的诉求需要发泄。
雪灾
首先见面的是雪灾。南方的漫天飞雪,2008以这样近乎华丽的方式开场。当然对大多沉迷于股市淘金梦的人们来说,他们是断不会想到,今年的股市会比这个冬天还冷。
艳照门
接着见面的是艳照门,一场全面偷窥的大狂欢。有时候真不知道是该说这是民主的进步,还是世风日下。
ZD
虽然XZ的问题一直存在,但基本上都成了不是问题的问题。取不想借着奥运的东风再次冒头。就像一个不甘寂寞的小丑,乘着人多主动蹦出来搞个无聊的表演。或许,它只是怕人将它遗忘。
地震
其实自然灾害每年都有,只是今年比较惨烈些。
奥运
奥运盼了这么多年,终于开完了,一场华丽的中国show。中国想借着奥运会作为一个展示中国的平台,只是还来不及品味就遇上了经济危机。不知道在以后来看奥运会是一个优秀的策划还是一个失败的投资。
经济危机
冰冻三尺非一日之寒,但真正关键的只是结果而已。美国的次贷危机迅速的席卷全球,变成全球性的经济危机。中国的股市更是从6000点的珠穆朗玛一直掉落到1800点的马里亚纳海沟。在股市疯涨的时候,股民们大叫政府的干预。我们在股市赚点钱容易吗,你还不让涨。但股市大跌后却开始大骂政府的不作为。股市都跌成这样了,还不托一托。政府容易吗。
爱国/WT
话说我以前一直感觉网上大多是所谓的愤青,总是有东西看得不爽,要大骂。缺不想在地震ZD等问题面前一下子出现了这么多爱国人士。更有甚者,在天涯上出现了专门HC国家两位领导人的“涛宝后援会”。不过或许大多网民只是因为无聊,所以善变。前两天还在为地震痛心疾首的网民们忽然间集体做起了俯卧撑。于是我开始相信或许所谓的WT在这世界上真的存在,或许WT和五毛党都存在。
虽然互联网早已过了“在互联网上没人知道你是一条狗”的原始时代,却也远谈不上真实。这还是一个马甲的时代。
Facebook/51
互联网的变化总是快的惊人。Facebook的迅速崛起,让去年还风头正盛的myspace仿佛在一夜之间迅速过气。与此同时,Yahoo由一个互联网的霸主迅速沦落为一个没人要的烫手山芋。也许还谈不上一个新时代的开始,但也算是一个时代的终结。
51,Facebook的中文Clone。有人说51开启了互联网无底裤抄袭(连css都抄)的历史。但至少51是成功的。尽管Facebook和51是如此的成功,但我却用的不多。特别是51,我始终没有去注册过。或许我已是上一代的互联网人,用着那些过时的产品。
山寨
山寨,始于山寨机却不限于山寨机。在2008,山寨终于发扬光大,走上主流,开启了所谓的山寨文化。毛泽东曾提出了“农村包围城市”的革命性理论,又如“人民只有人们才是创造历史的真正动力”。如今的山寨将毛泽东的理论精髓发扬光大,以草根的力量撬动世界。
iphone/GPhone
摩托罗拉败走麦城,iphone成功的沦为街机,Google的GPhone在千呼万唤后也终于露面。或许新一轮的手机大战才刚刚开始。
FP
虽说我是计算机专业毕业,但却也是在近年来才听过Function Program(FP)。似乎从去年开始国内就有一部分人在炒Erlang。也曾想去学两招好冒充大牛。不过了解后我认为这东西可能不太适合我,或许也并不适合大多人。 FP在更多的时候只是做学术用途。可能是神坛待久了也会寂寞,需要到草根世界寻找一些信徒。神之所以为神,是有人瞻仰。
既然我不是那少数的几只smart guy,就不去趟这趟浑水了。
FP虽然优秀,但不适合我,也并不适合大多人。

发表在 无责任乱评 | 留下评论

Google App Engine学习日志(一)使用Django 1.0 部署django_example

开篇的废话

    虽然GAE(http://appengine.google.com/)已经发布挺久了,而且我也在第一时间去抢了个测试名额,只是一直都没再去关注。说来我并不是太喜欢GAE这东西。GAE就是一个平台,要使用还得先学习一遍。而且由于限制很多,导致程序的移植性不怎么样。差不多用了GAE以后,就很难将应用再部署到自己的服务器上了。不过我想找个地方放东西,做一些自己的小应用玩,除了GAE外还真找不到啥其他比较好的免费资源。
    废话基本上说完了,下面开始正式进入主题。

准备工作(申请开通GAE)

    GAE在刚发布的时候需要先提交申请,再等待开通,现在似乎已经放宽限制可以随便申请了。但开通项目的时候会提示要用手机接收验证码。有人说移动的手机无法接收验证码,不过我的移动号码没遇到问题。这里需要注意的是,google是面对全球服务的,手机号码前需要添加国家标识,中国大陆的是86。
    使用GAE需要下载Google提供的GAE SDK。GAE SDK就是一个普通的安装包,直接安装就可以使用的。GAE计划支持多种开发语言,不过就目前而言还只支持python,因此在安装GAE前确保Python已经安装也是必须的。

安装范例程序django_example

    GAE本身就是一个WEB开发框架,即使不使用任何其他的WEB开发框架也可以直接使用。不过选用一个自己熟悉的,或者是自己认为方便的第三方开发框架也是一个不错的选择。目前GAE官方支持的WEB开发框架有Django0.96/pylons/web.py等。不过即使是GAE没有官方提供的,你也可以选择自己安装。
    由于对Django比较熟悉,而且万一日后真的需要迁移到自己的服务器上,使用Django开发日后的迁移工作也可以相对轻松点。选定Django做GAE的web开发框架。
    为了尽快的了解GAE的特性,我直接去GAE的sample项目(http://code.google.com/p/google-app-engine-samples/)上将Django的sample(django_example_20080409.tar.gz)给down了回来。
    解压后,运行命令dev_appserver.py django_example/,sample就跑起来了。可以使用http://localhost:8080/进行访问。这个Demo提供了简单的登陆/添加/修改功能。
    简单的看了下目录结构,其中下面几个文件比较重要。
|-app.yaml
|-django_bootstrap.py
|-index.yaml
app.yaml
    应用程序的基本配置信息,主要就是程序名,以及url映射。这里所有的url都交给django_bootstrap.py处理。
index.yaml
    这个文件是建索引用的。
django_bootstrap.py
    这其实就是一个wsgi的处理程序,将请求以wsgi的形式交给django进行处理。

更新Django到1.0

    如果使用GAE自带的Django,不需要做任何配置,不过现在Django1.0已经发布,似乎没有必要再使用0.96。于是动手将Django升级到1.0。
    察看官方的相关教程使用zipimport引入Django1.0(使用zipimport主要是GAE有文件数限制,而django的文件数本来就不少)。
    具体做法文章里已经说得比较清楚,我就不再啰嗦。不过有个问题需要注意的,在windows下会出现问题’module’ object has no attribute ‘unlink’,在网上看了下GAE将os的unlinlk给禁用了,需要做点修改。
在django_bootstrap.py里加上
if os.name == ‘nt’:
  os.unlink = lambda: None
更新后sample终于再次跑起来了,不过不幸的是点击添加gift的时候再次出错。这次是Django的错误。可能是Django在1.0里对url tag有做改动,在参数不存在的时候会出错。修改gift.html,将表单的提交地址修改为action=""。
    所有问题修正,使用命令appcfg.py update haoluobo/(haoluobo?:),我换了个自己喜欢的名字)上传到服务器。访问服务器http://haoluobo.appspot.com/,应用已经跑在Google的服务器上了。

后记

    没想到写个简单的学习日志这么费事,不知道还会不会有后继的日志。

发表在 编程 | 一条评论

推荐一个vim插件eclim(将eclipse集成到vim)

非常棒的一个vim插件,可以将eclipse的功能集成到vim。
eclim的具体功能可以参考官方的命令说明http://eclim.sourceforge.net/translations/zh_TW/vim/cheatsheet.html
(繁体中文翻译)
虽然eclim主要目标是要将eclipse的功能集成到vim,不过eclim本身的vim脚本也是非常实用的(我就没去集成eclipse)。
对我而言,我主要使用了它的自动python语法检查,以及对html标签的</自动完成。
官方的安装版本没有eclipse会无法安装,可以直接到http://eclim.svn.sourceforge.net/viewvc/eclim/trunk/src/vim/,点击页面上的Download
GNU tarball,将eclim的vim脚本down回来,并复制到Vim\vimfiles目录。
如果没有和eclipse集成,有部分功能无法使用并会弹出不少讨厌的提示,可以修改文件Vim\vimfiles\eclim\autoload\eclim\project\util.vim。
找到函数function! eclim#project#util#IsCurrentFileInProject (…)
在函数的最开头增加 return 0
表示文件不在eclipse工程里。
这样eclim就不会再做和eclipse相关的操作。

备注:

今天在使用的时候发现在打开Django的模板文件的时候还是会有些错误提示,不知道是否是他的脚本写的有问题(我看过代码似乎没有问题)。我修改了一点屏蔽了问题。具体修改方法为在\Vim\vimfiles\eclim\ftplugin\htmldjango\eclim.vim中增加以下脚本

if !exists(‘g:HtmlDjangoUserBodyElements)
  let g:HtmlDjangoUserBodyElements = []
endif

发表在 编程 | 留下评论

免费的wordpress博客服务推荐

    现在基本上只要是大点的网站都会提供博客服务,要找一个免费的博客空间实在是太容易了,只是大多博客服务都并不是太好用。基本上说来是各有各的不好。就拿我现在用的MSN Space来说速度慢也就算了,界面还不怎么样,可定制性也一般。
    在我看来,博客服务要是能使用目前使用最广泛的wordpress自然是最好的了,只是wordpress的官网被彻底的封死了,国内免费的也不多。国内比较有名的wordpress服务商可能要算是donews了,只是以前有朋友用的时候博客出过好几次问题,还被莫名其妙的删了好几次。这样的服务态度,我是不敢再用了。
    最近想和朋友整个关于widnows mobile的协作博客Hi WM,所以又去找了一圈,发现国内还是有不错的wordpress服务的。
    优博网(http://yo2.cn/)提供了免费的wordpress服务。此外优博网内置了数百个wordpress主题。不过即使这么多主题里都没有让你满意的,你还可以上传自己的主题,或是将内置的主题私有化后再进行编辑(我的就编辑过了)。虽不支持上传自己的插件,但内置的wordpress已经挺丰富的了。yo2会为你的博客提供一个二级域名,不过如果你觉得这还不够帅,可以为自己的博客绑定一个顶级域名(这个服务得收费)。访问速度方面我觉得一般,还成(经过一段时间的使用,感觉速度一般,有时候似乎非常的慢)。至于稳定性嘛,还有待观察,昨天就出现了用IE无法打开的情况。
    虽然我感觉yo2还不错,不过这个博客是不会搬过去了,毕竟要将这些数据倒过去还挺麻烦。将就着用了。
    最后,给我的新博客做个宣传吧。

Hi WM 是一个专门关注 Windows Mobile 手机相关新闻和应用的团队 Blog。

如果你和我们一样,也有一款 Windows Mobile 手机,并愿意分享你对 WM 的感受,可以通过 这个地址 来发表。

发表在 vicalloy的庄稼 | 留下评论

Nutch部署及相关问题(中文乱码等)修正

Nutch介绍

Nutch是一个开源的WEB搜索引擎,能提供高质量的搜索服务。
对于一些内部系统或中小型网站来说是一个不错的全文搜索解决方案。

Nutch的部署

最新版本的Nutch可从Nutch的官网获取。下载后直接解压就可以进行使用。 由于我使用的是windows系统,这里以windows下部署进行介绍。

Nutch爬虫设置

Nutch本身包含一个对目标站点进行索引的爬虫和一个提供搜索用的web界面。在查询界面可以使用前需要先设置Nutch爬虫对目标站点进行抓取。
部分配置文件的解释:

  • nutch\conf\nutch-default.xml
    • 设置http.agent.name,如果http.agent.name为空,爬虫将无法正常启动。这里可以设置任意你喜欢的名字,比如设置为vik-robot。
    • indexer.mergeFactor/indexer.minMergeDocs这两个值都改成500。这两个参数值越大,性能越高,所需要花费的内存也需要相应的增加。如果设置过大,可能出现内存溢出。就实际使用情况,在当前参数下,内存的最大使用量为3xxM。
    • http.timeout表示最大超时等待时间,如果访问的连接长时间没有反应将丢弃。

    • db.max.outlinks.per.page该参数表示单个页面最多支持多少个外连的连接,如果过多将不抓取。 如果是自己的内部系统那就设置一个任意大的数吧。
    • nutch-default.xml 解读
  • 创建文件nutch\urls,并填入爬虫的起始url。比如:

    http://mysite.com/
  • nutch\conf\crawl-urlfilter.txt 该文件用于设置需要索引的url的过滤关系。每行一个过滤条件,表示不包含该url,+表示包含。

    • [?*!@=],该行表示对所有动态url都不抓取。 现在的大部分系统都会有很多动态url,该过滤条件很可能使你抓不到任何内容。
    • 针对各系统分别设置url的过滤关系。具体的设置方法得根据各自应用系统的不同而不同,这里以广为流行的论坛discuz为例。在这url过滤将只抓取板块列表和帖子内容。

      # skip file:, ftp:, & mailto: urls
      -^(file|ftp|mailto):

      # skip image and other suffixes we can't yet parse
      -\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$

      # skip URLs containing certain characters as probable queries, etc.
      #-[?*!@=]

      # skip URLs with slash-delimited segment that repeats 3+ times, to break loops
      -.*(/.+?)/.*?\1/.*?\1/

      # accept hosts in MY.DOMAIN.NAME
      #+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
      #discuz
      +^http://mysite.com/discuz/index.php$
      +^http://mysite.com/discuz/forumdisplay.php\?fid=\d+$
      +^http://mysite.com/discuz/forumdisplay.php\?fid=\d+&page=\d+$
      +^http://mysite.com/discuz/viewthread.php\?tid=\d+&extra=page%3D\d+$
      +^http://mysite.com/discuz/viewthread.php\?tid=\d+&extra=page%3D\d+&page=\d+$
      # skip everything else
      -.

  • nutch\conf\regex-urlfilter.txt 我不清楚该配置文件是否有起作用,但建议注释掉其中的,-[?*!@=]。
执行爬虫
  • 由于Nutch的脚本采用的是linux下是shell,在windows下需要使用cygwin来执行。至于cygwin的具体使用…,这个到网上找其他文章吧。cygwin官网

  • 进入Nutch目录后执行命令 sh bin/nutch crawl urls -dir crawl -threads 2 -depth 100 -topN 1000000 >& crawl.log 完成网站的抓取和索引。

    • threads 抓取网页的线程数,理论上线程数越多速度越快,但过多的线程会给服务器带来比较大的负担,影响正常使用。
    • depth 页面的抓取深度。
    • topN 每层最多抓取的页面数
    • crawl.log 日志存放文件
  • 执行后会在Nutch的根目录下生成一个crawl目录,里面存放的就是索引文件。
  • 注意:执行命令前请先删除已存在的crawl文件夹。如果crawl文件已经存在,命令将无法正常执行。
windows定时任务的建立

Nutch的索引建立好后并不会自动更新,需要使用windows的计划任务建立计划任务来定期更新索引。

  • 具体做法待续

WEB搜索界面的部署

Nutch使用Java开发,其WEB界面需要跑在相应的web容器中,这里采用的是tomcat6。

部署到tomcat
  1. 复制nutch-0.9.war到tomcat6\webapps,运行tomcat6\bin\startup.bat启动tomcat。
  2. tomcat将自动对war文件进行解压。修改文件tomcat6\webapps\nutch\WEB-INF\classes\nutch-site.xml,设置nutch的索引文件位置。

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <property>
    <name>searcher.dir</name>
    <value>D:\AppServ\nutch\crawl\</value>
    </property>
    </configuration>
  3. 重启tomcat并测试搜素功能,如果没有意外,服务将正常运行。
相关问题修正
  • 搜索页面上的部分中文出现乱码。该问题主要由jsp:include引起。将被包含文件nutch\zh\include\header.html由UTF-8转换为GBK,修正该问题。
  • 搜索中文出现乱码。修改tomcat配置文件tomcat6\conf\server.xml。增加URIEncoding/useBodyEncodingForURI两项。

        <Connector port="8080" protocol="HTTP/1.1" 
    connectionTimeout="20000"
    redirectPort="8443"
    URIEncoding="UTF-8"
    useBodyEncodingForURI="true"/>
  • 网页快照乱码问题修正。修改页面tomcat6\webapps\nutch\cached.jsp,将content = new String(bean.getContent(details))修改为content = new String(bean.getContent(details),"utf-8")。
  • apache整合。修改apache配置文件\conf\httpd.conf,增加如下配置

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    <IfModule mod_proxy.c>
    ProxyPass /nutch http://localhost:8080/nutch
    ProxyPassReverse /nutch http://localhost:8080/nutch
    </IfModule>
  • url问题。在和apache整合后会出现url不正确的问题。主要表现为用户看到的url的前缀为ProxyPass中配置的url。目前还没有比较好的解决方案,只能手动修改所有问题jsp页面。使用命令findstr /s requestURI *.jsp查找出所有问题页面。在String base = requestURI.substring(0, requestURI.lastIndexOf(‘/’));后面增加base = base.replace("localhost:8080", "mysite.com");,将错误的url替换为正确的url地址。

  • 删除页面tomcat6\webapps\nutch\cached.jsp,关闭网页快照功能。由于部分页面,当前用户可能无访问权限,关闭快照功能。
中文问题修改

Nutch默认支持中文搜索,只是Nutch对中文采用安字进行分词,例如搜索“中国”不使用双引号,将返回所有包含“中”和“国”的网页。为方便使用,系统自动为搜索内容添加双引号。

  • 修改文件tomcat6\webapps\nutch\search.jsp。增加格式化搜索字符的函数,同时对queryString进行处理。

    <%!  
    public static String format_query_str(String s) {
    s = s.replace("”", "\"").replace("“", "\"");// 处理中文符号
    if (s.indexOf("\"") > -1) {// 如果包含"则不继续进行处理
    return s;
    }
    String[] ss = s.split(" ");
    String ret_s = "";
    for (String str : ss) {
    if (str.trim().equals("")) {
    continue;
    }
    if (str.indexOf("-") == 0) {
    str = "-\"" + str.substring(1) + "\"";
    } else {
    str = "\"" + str + "\"";
    }
    ret_s += str + " ";
    }
    return ret_s.trim();
    }
    %>
    queryString = format_query_str(queryString);
搜索帮助
  • 使用方法和常见的搜索引擎类似,支持多关键字,多个关键字之间使用空格进行分割。
  • 对中文采用安字进行分词,因此对中文搜索时最好加上双引号。例如搜索“中国”如果不使用双引号,将返回所有包含“中”和“国”的网页。
  • 可以在一个词前面加减号丛而禁止它出现在搜索结果中, 例如, 搜索football -nfl 会找到讨论football, 但不出现"nfl"的网页。
  • 搜索英文单词不区分大小写, 因此搜索NuTcH 等同于搜索 nUtCh。

相关网站

发表在 未分类 | 2条评论

Trac部署说明

Trac介绍

Trac是一个项目管理工具,同时提供了良好的插件接口,可以以Trac作为平台开发自己的基础应用。

部署

获取相关资源

Trac使用python编写,首先需要python的支持。Trac使用GenShi作模板引擎,在安装Trac前需要先安装GenShi。Trac的用户管理非常的难用(需要使用apache的权限设置),通过使用第三方扩展AccountManagerPlugin来方便用户的管理。
相关的资源下载地址如下。

安装/部署相关组件
  • 进入GenShi/Trac的根目录,使用setup.py install对GenShi/Trac进行安装。

  • 进入AccountManagerPlugin根目录使用setup.py bdist_egg命令生成egg。

配置Trac环境

在安装好Trac之后,需要使用Trac的管理命令对Trac环境进行初始化。

  • 使用命令trac-admin %prjpath% initenv初始化Trac环境,其中%prjpath%为您指定的数据存放的位置。

  • 初始化好Trac环境后使用tracd –port 9000 %prjpath%命令及可通过Trac的内置服务器启动Trac。此时可以以匿名用户的方式访问Trac。

  • 在初始化好Trac环境后需要继续完成Trac的用户认证配置。将前面AccountManagerPlugin生成的egg文件复制到%prjpath%/plugins,增加AccountManagerPlugin插件。

  • 修改Trac的配置文件%prjpath%\conf\trac.ini,增加如下内容。

    [components]
    ;关闭Trac自带的认证模块
    trac.web.auth.LoginModule = disabled
    ;关闭注册功能
    ;acct_mgr.web_ui.registrationmodule = disabled
    [account-manager]
    password_store = SessionStore
    hash_method = HtDigestHashMethod
  • 通过AccountManagerPlugin的注册功能,注册一个Trac帐户admin,并使用命令trac-admin %prjpath% permission add admin TRAC_ADMIN将该用户设置为管理员。

  • 使用新增加的管理员帐户登陆Trac,就可以顺利的进入Trac的管理后台对Trac进行管理。
和Apache的整合

Trac和Apache的整合可以使用mod_python/wsgi等,具体方法,请查看Trac官方的相关文档。

发表在 未分类 | 留下评论