/**********************************/
/* Jforum安装与中文化设置 */
/* */
/* author: atom chan */
/* date: 2008.10.22 */
/*********************************/
本文水平有限,但是希望转载能注明出处。(http://eatdrinkmanwoman.spaces.live.com/blog/cns!97719476F5BAEDA4!999.entry)
/**********************/
/* 简介 */
/**********************/
Jforum是一款开源的java类的论坛,小巧高效,运用了很多JSP新技术,支持hsqldb、oracle、mysql、
postgresql数据库,完全遵从MVC设计模式,能够在任何Servlet容器与EJB服务器上运行,当前的版
本是2.1.8。
更多信息请参考项目主页: www.jforum.net
本文安装环境
windows sp3 tomcat-5.5.26 mysql-5.0.67-win32
/******************/
/* 安装步骤 */
/******************/
1.在cmd下以root身份进入mysql的shell
C:\Documents and Settings\atom>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1477
Server version: 5.0.67-community-nt MySQL Community Edition (GPL)
Type ’help;’ or ’\h’ for help. Type ’\c’ to clear the buffer.
mysql>
2.查看现有的database。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)
现在新建一个名为jforum的database,字符集设为utf-8,为了避免中文乱码问题。
mysql> create database jforum character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
再查看一下,database jforum确实已经建好。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| jforum |
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
3.将jforum.war复制到tomcat的webapps文件夹下,启动tomcat
打开浏览器,进入http://localhost/jforum/install.jsp
进行自动安装,按照提示进行填写。
数据库编码一项,选择utf-8
数据库名称一项,请和第2步创建的数据库名一致。
完成后点击下一步,确认无误后开始安装。
4.完成安装后先不进入论坛。修改一些配置文件以支持中文。
(1) 打开jforum/WEB-INF/config/SystemGlobals.properties
将default.container.encoding = ISO-8859-1,修改为:
default.container.encoding = UTF-8
这里是设置容器的编码。由于我在tomcat的conf/server.xml中设置过URIEncoding="UTF-8",所以这里要一致。
tomcat默认的编码是iso-8859-1,如果你没有改动,此处可以不修改。
(2) 打开jforum/WEB-INF/config/jforum-custom.conf
定位到database.connection.string一项,在末尾追加
&useUnicode\=true&characterEncoding\=utf8
5.重新启动tomcat,进入http://localhost/jforum/forums/list.page
以admin身份登录,可以到后台设置论坛了。
进入后有个错误提示,但是好像不影响使用。
/********************************/
/* 论坛后台设置部分说明 */
/********************************/
section A:附件设置
我第一次设置附件的时候,没有看wiki。“扩展名分组”与“扩展名”设置让我迷惑不解。其实wiki上已经说的相当清楚,建议看
http://www.jforum.net/doc/ExtensionsAndExtensionGroups
首先要创建一个“扩展名分组”,“分组名”可以是“图片”,“压缩包”,这类统称;“允许”一项一定要勾上,不勾就表示是禁止上传的附件;“下载方式”,不论是“在线”还是“实体”,我发现没有太大区别。“上传图标”为空的话,就默认使用“附件发表图示”中的“images/icon_clip.gif”。我试着使用自己定义的图标,按照wiki上说是相对路径,但是设来设去都不对,作罢。
其次新建一个“扩展名”,每项只能写一个,比如“jpg”,“扩展名注释”随便写,组名选“图片”。
建议新建“*”扩展名,组名任意,“允许”一项不勾取,这样可以做到凡是没有明确允许的扩展名,都无法上载。
section B:群组权限管理
【越级管理员】
越级是指越过群组设置的上下层关系
【分类管理】
选中表示不可见,允许全部表示全部可见
【版块】
选中表示不可见,允许全部表示全部可见(依赖于分类管理的设置)
【匿名发帖】
选中表示该版块禁止匿名用户发帖,允许全部表示匿名用户可以发贴
【只允许回复】
选中表示该版块禁止发主体帖,允许全部表示所有板块可以发主体帖(依赖于分类管理、版块)
【设置主题置顶,公告等】 【发起投票】 【投票】
一旦设置,则是在所有版面允许(依赖于分类管理、版块)
【只读版块】
选中表示该板块只读,允许所有表示不做限制
【限制回复】
选择 '允许全部'将不限制对所有版块的回复,选中指定的版块代表不允许在选择的版本中回复信息?????我不太明白它的意思。
【附件相关】
允许下载附件:选中表示禁止下载该版面附件,'允许全部'表示可以下载所有版面附件
这个意思。。。很绕
【其它 / 一般权限】
管理活动日志是指删贴记录等
【版主】
我的理解:版主是按照群组划分,而不是按照角色。
比如a用户属于A群组,我要设置他为pc版版主。
那我这样设置:
是否允许设置为版主:选“是”
不能修改的论坛: 不选中“pc”版
很绕吧
别的就没什么好说了。
是的,Jforum有一些小bug,但是不痛不痒的。我也没兴趣读源码修改,将就用了。
这种tomcat为容器快速部署的小论坛,还是很有生命力的。公司内部网,小区业主论坛,都可以用这个搞。
/************************/
/* plus: 为什么会出现中文乱码? */
/************************/
这个问题在web开发中经常出现,我自己也碰到过。这里谈一点我的理解。
乱码问题的实质在于编码不一致。一个web项目,包括数据库,容器(服务器),页面,
浏览器 服务器 数据库
______ out in ________ out in _________
| | ----------> | | ----------> | |
| 页面 | | 容器 | | db tables|
|______|<---------- |________| <---------- |________|
in out in out
这三个entry内部都有自己的默认的编码方式,任何一个entry,从上游取得数据,
a.如果上游传来的数据没有明确指示采用何种编码
那就按照entry默认的编码方式来读取数据,给下游输出的数据也是按照entry默认的编码组织。
这时候假如上游和entry的编码不一致,entry也不管那么多,反正按照它自己的编码来读,读不懂的地方呢,
就喷上一堆问号草草了事。
b.如果上游传来的数据有明确指示了编码方式
则entry内部会进行编码转换,转换为上游指定的编码方式来处理,输出给下游的数据也是转换后的编码。
这三个entry中最容易搞定的是浏览器,浏览器的作用就是把容器生成的页面显示给用户,(以jsp页面为例)一般在页
面的开头都有<%@ page pageEncoding="xxx"%> <%@ page contentType="text/html,charset=xxx" %>字样,它可以
告知浏览器用什么编码方式来读(一般我们的浏览器编码是设为自动选择)。同时,页面由浏览器回炉给容器时,页面
开头的编码字样也可以告知容器用什么编码来处理。
有一些大站的国际化做的很好,会根据用户浏览器的编码设置,自动推送对应的编码页面。这样负担有些大,小网站这
样做有些不划算。
当今的趋势是utf-8一统江湖,尤其是国外的站点,基本上是这样做了,成为事实上的建站标准。而我们国内的大部分
网站还停留在gbk/gb2312和IE6标准,这是一个遗留问题,有些网站已经建了七八年,一改要全改,太麻烦了。
所以,新建设网站的时候,我们还是赶上潮流遵循W3C吧。