phpbb3的anti-spam

phpbb3自身带的anti-spam系统已经被破解,导致论坛上出现了大量的垃圾帖子和用户。
经搜索,可以暂时使用PHPBBCHINA上的这个方案:

Administration Control Panel -> Users and Groups -> Custom profile fields
[Create new field]: antibot (Field identification: antibot, Field type: Numbers)
Display in user control panel: Yes
Display on registration screen: Yes
Required field: Yes
Field name: Anti-Bot check
Field description: 如果您不是机器人,请输入一个130到139之间的数字:
[Profile type specific options]
Lowest allowed number: 130
Highest allowed number: 139
没有用mod,目前为止好像有效,是俺搞完后做的记录,看不明白的可以问,

还有一个办法是使用初始发帖审核,可阻止垃圾帖泛滥,但不能应对注册,设置很简单:
Administration Control Panel -> General -> Post settings
Enable queued posts: Yes
默认的最大帖子数是3,也就是说,只有前3帖通过审核发表后,用户才能自由发帖。
否则你发了他也不显示。。。
注意这个是3.0.0以后版本才有的功能(3.0.0本身木有)

整合phpbb3和mediawiki

mediawiki是1.11.0版本,phpbb3 rc7,整合起来也还是比较简单的。
下载整合插件,解开到extension目录下,然后修改LocalSettings.php文件,在最后添加一下内容,也可以参考其readme。

/*—————–[ Everything below this line. ]—————–*/

// PHPBB User Database Plugin. (Requires MySQL Database)
require_once ‘./extensions/Auth_phpbb.php’;

$wgAuth_Config = array(); // Clean.

$wgAuth_Config[‘WikiGroupName’] = ‘Wiki’; // Name of your PHPBB group
// users need to be a member
// of to use the wiki. (i.e. Wiki)

$wgAuth_Config[‘UseWikiGroup’] = true; // This tells the Plugin to require
// a user to be a member of the above
// phpBB group. (ie. wiki) Setting
// this to false will let any phpBB
// user edit the wiki.

$wgAuth_Config[‘UseExtDatabase’] = true; // This tells the plugin that the phpBB tables
// are in a different database then the wiki.
// The default settings is false.

/*-[NOTE: You only need the next four settings if you set $wgAuth_Config[‘UseExtDatabase’] to true.]-*/
// $wgAuth_Config[‘MySQL_Host’] = ‘host’; // phpBB MySQL Host Name.
// $wgAuth_Config[‘MySQL_Username’] = ‘username’; // phpBB MySQL Username.
// $wgAuth_Config[‘MySQL_Password’] = ‘password’; // phpBB MySQL Password.
// $wgAuth_Config[‘MySQL_Database’] = ‘database_name’; // phpBB MySQL Database Name.

$wgAuth_Config[‘UserTB’] = ‘phpbb_users’; // Name of your PHPBB user table. (i.e. phpbb_users)
$wgAuth_Config[‘GroupsTB’] = ‘phpbb_groups’; // Name of your PHPBB groups table. (i.e. phpbb_groups)
$wgAuth_Config[‘User_GroupTB’] = ‘phpbb_user_group’; // Name of your PHPBB user_group table. (i.e. phpbb_user_group)
$wgAuth_Config[‘PathToPHPBB’] = ‘../phpbb3/’; // Path from this file to your phpBB install.

// Local
$wgAuth_Config[‘LoginMessage’] = ‘You need a phpBB account to login.‘; // Localize this message.
$wgAuth_Config[‘NoWikiError’] = ‘You are not a member of the required phpBB group.’; // Localize this message.

$wgAuth = new Auth_phpBB($wgAuth_Config); // Auth_PHPBB Plugin.

然后还需要修改Auth_phpbb.php,查找

if (md5($password) == $faryMySQLResult[‘user_password’] && $this->isMemberOfWikiGroup($username))

替换为:

require_once $this->_PathToPHPBB . ‘includes/functions.php’;
if (phpbb_check_hash($password, $faryMySQLResult[‘user_password’]) && $this->isMemberOfWikiGroup($username))

最后要到论坛上建立对应的用户组,并添加用户。

参考:
1 http://www.mediawiki.org/wiki/Extension:PHPBB/Users_Integration

发现一个PHPBB RC5的BUG

已经报告到给官方了。
是local_upload的问题,估计之前没有人使用这个函数,所以一直没发现。
调用的时候会报这个错误:

Notice: in file /includes/functions_upload.php on line 580: mime_content_type() [function.mime-content-type]: can only process string or stream arguments

一直跟踪下来,发现这个$filename是一个空变量,应该是用$source_file这个变量。

整合phpbb3和svn服务

整合,题目有点大,呵呵。
其实就是把SVN的用户控制交给phpbb3来进行处理。
要求SVN必须采用apache2/mod_auth_mysql来进行控制的。
然后在phpbb3的后台创建一个新的用户组,用于控制可以访问SVN服务的用户。然后在mysql里创建一个视图,提取用户名称和密码。注意,PHPBB3采用的加密方式是直接MD5。假设创建的组名为svn:

create view svnauth (username,passwd,groups) as select users.username,users.user_password,groups.group_name from groups,user_group left join users on user_group.user_id=users.user_id where groups.group_name=”svn” and user_group.group_id=groups.group_id ;

然后在apache2的site文件里设置为:

Auth_MySQL_Encryption_Types PHP_MD5

这样就可以了,具体的操作还需要参考之前的文章:安装subversion: ssl+auth_mysql+mod_svn

估计还需要mysql 5的支持,不知道mysql 4是否支持视图。

phpbb 3.0 rc4发布

PHPBB3.0 RC4发布,修正了一系列的BUG,升级部分做了一些增强。详细情况请参考官方说明

在RC1到RC2的升级中,可以进行自动的升级。从RC2之后,好像需要手工确认了,不知道这个改进是好还是不好。
同时,在RC4升级过程中,若你使用了其他语言包,需要注意更新对应的语言包,或者,根据这个帖子进行简单的修改。

dallas2 wrote:I don't know if this is the right thing to do, but in your language pack find common.php file and open it. In that file find:

'NEWEST_USER' => 'Our newest member %s%s%s',

(of course, this second line will be in your language). Remove two of those "%s%s%s" so that the final line looks like this:

'NEWEST_USER' => 'Our newest member %s',

This removes the error line for me.

phpbb 3.0 rc1到rc2的升级

开始走了弯路,以为要覆盖后升级,没想到是直接下载升级包就可以了。

cd myforum
sudo wget http://prdownloads.sourceforge.net/phpbb/phpBB-3.0.RC1_to_3.0.RC2.zip?download
sudo unzip phpBB-3.0RC1_to_3.0RC2.zip

然后进入install目录,选择upgrade就可以了。

去掉了论坛的SMTP功能

因为几个免费的邮件服务商也不是很好,而且我申请的邮件也都失效了,导致很长时间都收不到论坛的邮件了,因此就直接把smtp功能给cut了。