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的精 ...
随机推荐
- 我的Visual Studio 2013常用快捷键
声明及广告 所有功能针对C#开发配置而写,部分功能可能由插件提供,我会尽可能标注出相应的插件名称.为行文方便,所有快捷键以大写形式表示.太常用的快捷键,如Ctrl + C, Ctrl + Z, Ctr ...
- PHP一句话木马研究
最近在研究PHP一句话后门,查阅了很多大佬的博客,并从中衍生出了一些可用的方法. 现总结如下: 方案一:回调函数 回调函数:Callback (即call then back 被主函数调用运算后会返回 ...
- 一个简易的WebServer程序
现在这个公司的it管理真不知道说什么了,我主要从事.net方向的开发,公司电脑配置还是win7了,可是自己没有安装iis的权限,it也拒绝安装,想玩玩web安全都不行.于是乎决定开发一个window ...
- [leetcode]Subsets @ Python
原题地址:https://oj.leetcode.com/problems/subsets/ 题意:枚举所有子集. 解题思路:碰到这种问题,一律dfs. 代码: class Solution: # @ ...
- javascript运算符instanceof
概述 instanceof 运算符可以用来判断某个构造函数的prototype属性是否存在另外一个要检测对象的原型链上. 语法 object instanceof constructor 参数 obj ...
- 谷歌地图api访问失败
在非外网情况下,我们调用谷歌api会出现加载不到地图的现象,此时可以换一下域名试试也许就好了 比如我自己访问api时时这样写的: https://maps.googleapis.com/maps/ap ...
- Arduino教程:MPU6050的数据获取、分析与处理
Arduino教程:MPU6050的数据获取.分析与处理 转载 摘要 MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度.由于其体积小巧,功能强大,精度 ...
- 【Kafka】Kafka为什么要加入分区的概念
Kafka为什么要加入分区的概念 kafka 分区 作用_百度搜索 (1 封私信)kafka中的topic为什么要进行分区? - 知乎 Kafka安装版本选择 Apache Kafka nc使用 n ...
- Spring(二十二):Spring 事务
事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性. 事务就是一系列的动作,它们被当做一个单独的工作单元.这些动作要么全部完成,要么全部不起作用. 事务的是四个关键 ...
- jchat-windows-master 编译输出日志
第一个项目成功生成的输出日志 >------ 已启动全部重新生成: 项目: QxOrm, 配置: Debug x64 ------ >Moc'ing IxModel.h... >Mo ...