phpBB3.1和3.2
闲逛看到一个帖子, phpBB3的论坛经常被机器人注册攻击, 要找人做拦截. 出于兴趣, 联系了一下.
论坛是一个做健康养老调查的社会机构的, 版本3.1, 十年前我还在更新phpbb中文包的时候, 版本3.0.8吧, 现在最新的是3.2.x, 下来看了一下代码, 代码结构没变, 还是那么大咧咧乱哄哄, 功能上变化还是挺大的, 原先饱受诟病的的MOD改为extension了, 像joomla那样, 安装扩展可以不用修改论坛代码, 这样版本升级会容易很多, 不需要再把所有安装了的MOD都再patch一遍(或者按升级的patch, 把论坛自己patch一遍).
这个论坛被机器人攻击的原因, 还是因为使用的是图形验证码, 这个对于现在的机器人来讲, 识别率已经很高了, 另外他们自己添加的email地址有效性验证没有加入到最终的注册提交环节, 对于机器人来说那就是畅通无阻了.
遇到的一个问题是对style里面template的修改一直无法生效, 清空cache里面的文件也没用, 后来发现是一个后台配置在控制的, 在load confirguration里面有recompile stable template的选项, 这个设置成enabled就好了. 这选项当年肯定是用过的, 时间太长, 完全不记得了 :(
升级至phpBB3.2的一些记录
首先是 install模块
执行URL和以前有很大变化, 不支持传统的 ?a=b 这样的参数格式了, 必须要用url rewrite的方式, 在phpBB3.2安装包的docs目录下, 有一个供参考的nginx配置文件 nginx.sample.conf , 但是这个只适用于安装在域名根目录下的phpBB, 如果你的phpBB是安装在子目录下, 那需要自己修改一下, 下面是我使用的conf供参考(里面混杂了两种wwwroot, 是因为我的php-fpm是从docker中启动的, 两边看到的wwwroot路径不一样.
#user nobody;
worker_processes 1; error_log logs/error.log;
pid logs/nginx.pid; events {
worker_connections 1024;
} http {
include mime.types;
index index.html index.htm index.php;
default_type application/octet-stream; sendfile on;
tcp_nopush on; keepalive_timeout 65; gzip on; server {
listen 80;
server_name localhost; #access_log logs/host.access.log main; location ~ \.php$ {
root /home/milton/WorkPHP/wwwroot;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass 172.17.0.2:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
} location / {
root /home/milton/WorkPHP/wwwroot;
index index.html index.htm index.php;
} # Correctly pass scripts for installer
location /phpbb3.2/install/ {
root /home/milton/WorkPHP/wwwroot;
index index.html index.php;
# phpBB uses index.htm
try_files $uri $uri/ @rewrite_installapp; # Pass the php scripts to fastcgi server specified in upstream declaration.
location ~ \.php(/|$) {
# Unmodified fastcgi_params from nginx distribution.
include fastcgi_params;
# Necessary for php.
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT /var/www/html;
try_files $uri $uri/ /phpbb3.2/install/app.php$is_args$args;
fastcgi_pass 172.17.0.2:9000;
}
} location @rewrite_installapp {
rewrite ^/phpbb3.2/(.*)$ /phpbb3.2/install/app.php/$1 last;
} }
}
在执行 app.php/update 之后, 按提示进行升级.
Cron Task 和 Text Reparser
参考 https://www.phpbb.com/support/docs/en/3.2/kb/article/phpbb-32%2B-text-reparser/
在phpBB3.2之后, 使用了新的bbcode格式, 旧的内容中的bbcode并不会在升级时一并转换成新格式, 而是在升级之后的日常运行中, 通过phpBB自身的cron任务来进行Text Reparse. 如果你的文章数量很多, 那么这个进程是很漫长的, 在期间如果有用户访问这些旧格式的帖子, 就会抛出 bbcode.php on line 121 错误. 如果想手动加快这个过程, 可以通过命令行执行 bin/phpbbcli.php 来进行
$ php bin/phpbbcli.php reparser:reparse --ansi
.这个命令会将所有包含bbcode的内容: post text, user signature, poll title, poll option, pm text, forum description都转换一遍. 15K个帖子的转换时间大概是4分钟, 速度还可以.
phpBB3.1和3.2的更多相关文章
- python-phpbb3 (可以用python3 操作 phpbb3 论坛的模块)
python-phpbb3 2016年8月30日 04:50:48 codegay phpbb3是PHP写的开源的论坛,python-phpbb3这个项目是用python3实现很多对phpbb3论坛操 ...
- phpBB3导入帖子的Python脚本
关联的数据表 在phpBB3中导入用户时, 需要处理的有两张表, 一个是 topics, 一个是 posts.为了方便与原数据关联, 需要在这两个表上新增一个字段并建立唯一索引 ALTER TABLE ...
- phpBB3导入用户的Python脚本
关联的数据表 在phpBB3中导入用户时, 需要处理的有两张表, 一个是 users, 一个是 user_group. 如果是新安装的论坛, 在每次导入之前, 用以下语句初始化: DELETE FRO ...
- phpBB3导入版面的Python脚本
关联的数据表 在phpBB3中导入版面时, 需要处理的有两张表, 一个是 forums, 一个是 acl_groups. 如果是干净的论坛, 可以不保留安装时填入的默认分区和版面, 直接用以下语句初始 ...
- phpBB3.2 自动检测浏览器语言
这是根据HTTP request header里的Accept-Language信息来处理的. 首先看一下Accept-Language的格式 Accept-Language: <languag ...
- phpBB3.2开发环境配置
从Github导出项目 如果只是查看代码, 可以直接clone官方的git https://github.com/phpbb/phpbb.git . 如果需要开发, 就fork一下再从自己的Git里c ...
- 在树莓派Raspbian下安装支持Hard Float的.NET环境
[题外话] 最近入了个树莓派玩,系统装的官方推荐的Hard Float的Raspbian,由于衍生自Debian,所以Mono什么的非常好装.但是官方源中的Mono在Hard Float的Raspbi ...
- raspberrypi(树莓派)上安装mono和jexus,运行asp.net程序
参考网址: http://www.linuxdot.net/ http://www.cnblogs.com/mayswind/p/3279380.html http://www.raspberrypi ...
- 树莓派系统介绍:DIetPi
项目主页:http://fuzon.co.uk/phpbb/viewtopic.php?f=8&t=6 当前版本:V34(15年4月16日发布) DietPi是国外一个基于Raspbian的精 ...
随机推荐
- 第十章 常用的JVM参数记录
GC -XX:+PrintGC 打印GC日志 -XX:+PrintGCDetails 打印详细的GC日志 -Xloggc:/var/gc.log 将GC日志打印在根目录的var文件夹下的g ...
- 重启Windows的PowerShell
这么简单的一个命令都单独写一篇blog, 是不是太无耻了? 好吧, 谁让咱不会呢. 学会了就来一篇. 呵呵. Restart-Computer 来源 ================ http:/ ...
- 魅族推送 简介 集成 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- jquery中对 iframe的操作
我们先看一下 JQUERY中的对像 contents() 的帮助文件 contents() 概述 查找匹配元素内部所有的子节点(包括文本节点).如果元素是一个iframe,则查找文档内容 示例 描述: ...
- 八一八cvs vss svn和git比较
特征 CVS Git Mercurial Subversion 是否原子提交 CVS: 没有. CVS提交不是原子的 Git: 是的. 提交都是原子的 Mercurial: 是的 Subversion ...
- 微信小程序 this.data与this.setData
一.摘要 小程序中我们会经常使用到this.data与this.setData.其中this.data是用来获取页面data对象的,而this.setData是用来更新界面的.那么他们之间的区别与联系 ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十八):kafka0.10.1 内置性能测试API用法示例
消费者测试: ./kafka-consumer-perf-test..com.cn:,vm10..com.cn:,vm10..com.cn: --group test-teg1 --messages ...
- 其原因可能是堆被损坏,这也说明 xxx.exe 中或它所加载的任何 DLL 中有 bug
1.代码如下: string src ="abcdabcd"; char* dst = new char[8]; strcpy(dst,src.c_str()); delete[] ...
- java parse 带英文单词的日期字符串 转 date (转化新浪微博api返回的时间)
拂晓风起 专注前端技术cocos2d.js.flash.html5,联系:kenkofox@qq.com.如果读者要找腾讯工作机会,请不吝推荐简历. 博客园 首页 新闻 新随笔 联系 管理 订阅 随笔 ...
- WIN10 64位系统 如何安装.NET Framwork3.5
把SXS文件夹复制到C盘根目录,然后以管理员身份运行CMD,大概2分钟能完成,然后这个SXS文件夹就可以删了