你在这里


程序

自己编程进行Drupal 6网站升级数据迁移到Drupal 7

James Qi 2015年12月24日 - 15:32 发布

  整个2015年从开始到结尾都在进行网站向云服务器的搬迁以及网站的升级,其中大数据量的数据迁移是个令人很头痛的问题,几百万的数据量加上几十个字段,系列网站还有几十个这样的网站,需要等待数据迁移程序运行的时间真是太长太长了。上半年就遇到大数据量的问题,后来通过修改服务器配置,让PHP使用更多的内存、最大执行时间、数据库连接缓存等办法,还是用drush content-migrate-fields这样的命令来进行,算是解决了部分难以迁移的站点。但现在到年尾,而且随着Drupal 8的退出,Drupal 6很快就面临失去支持的境况,我们需要把所有Drupal 6网站都升级,现在把所有服务器资源都利用起来,还专门购买16核64G内存的云服务器临时实例来加快迁移程序的运行,但按目前的做法算下来,依然是不知道还需要几个月才能完成。sad

检测网站301重定向跳转的PHP程序

James Qi 2015年3月4日 - 10:48 发布

  最近在继续把一些网站从托管的自己服务器向云服务器转,做网站很多年了,少不了一些以前用301重定向做的网站调整,例如某个子域名telecode.027.net后来单独申请域名www.chahaoba.com后就一直用的301重定向,这样的重定向按照搜索引擎优化的说法是需要保持至少6个月,但我们基本上保持了几年,期间机房、服务器也多次变化,每次都需要记得去进行修改设置。

  这样的跳转做得多了、服务器搬迁也多了,有些记不得了,这次干脆趁着再次搬迁的时候来一个整体梳理,把所有以前做过的301重定向全部列出来,还专门做了一个PHP程序来检测看是否跳转、跳转是否正确,把这个程序放到服务器上定期每日运行一次,结果发送邮件,邮件标题举例:check_jump: 148 jump ( match = 145, not_match = 3 ) , 0 not jump, total: 00:02:53 average: 1.169 seconds,这样以后就再也不用担心因为什么原因将这些跳转改变了自己还不知道。

网站监控程序的开发需求

James Qi 2013年9月18日 - 14:46 发布

  对于持久化专业运营网站来说,对网站的监控必不可少,以我们自己的理解,网站监控需要做的两件基本事情:

  1. 监控网站健康状态,当网站出现故障的时候,及时发现并报警;
  2. 监控网站性能表现,获取网站访问速度,利于用数据来分析优化。

  说到网站监控,以我们的了解,可以采取的办法有以下几种:

  1. 使用现成的网上监控服务,例如site24x7.com提供收费和免费的专业服务;
  2. 自己安装现成的监控软件,例如radar website monitor;
  3. 开发一套适合自己需要的监控软件,这只在需求特殊以及有能力开发的情况下才进行。

  前面1、2两种办法我们都曾经采取过,但随着子网站数量的不断增长,用已有的现场服务或者软件就显得不足了,需要监控的子网站数量达到数百个之多,各个子网站还希望能监控不同的页面(例如首页、列表页、内页以及桌面版、手机版、多语言版等),主要问题:

动态生成robots.txt的PHP程序

James Qi 2013年8月30日 - 15:32 发布

  以前尝试过《Drupal系列网站用robotstxt模块生成独立robots.txt》,可以实现多站点的每个站点都有不同的robots.txt,但缺点是需要逐个编辑,当子站数量多、修改次数多的时候,依然显得麻烦。

  后来也尝试过程序动态生成robots.txt,但一直没有成功,昨天还尝试了在自定义module中编写,但显示的内容包含在html.tpl.php, page.tpl.php等模板之中,也不行。

  再多查了一些网上的资料并反复测试,终于是可以实现了,步骤如下:

  1. 删除原来的robots.txt;
  2. 编写一个robots.php,用PHP程序来动态输出内容;
  3. 修改.htaccess,让用户访问robots.txt的时候重定向到robots.php的输出内容。

  一个robots.php的例子:

自由标签:

检查Drupal的.po翻译文件中缺少哪些词的PHP程序

James Qi 2013年8月29日 - 14:32 发布

  最近在处理一些小问题的时候积累了一些小程序来解决,现在记录下来以备后用。

  Drupal多语言网站是通过.po的翻译文件来导入翻译数据的,有一批国家/地区名称需要导入,而以前的.po文件中包括了一部分,只需要找出并添加新的词,这个过程人工来核对比较麻烦,就用了下面这段程序:

自己编写网站防采集程序

James Qi 2013年7月9日 - 15:02 发布

  对于我们这种数据量很大的网站,面临的一个麻烦是总有人来采集,以前多使用过人工检查、屏蔽的办法,这种办法有效果但太费精力,前段时间也找了插件来自动限制最大连接数,但存在误屏蔽搜索引擎的问题,最近老夫下决定亲自操刀写程序,把这些采集者都斩草除根,虽然编程麻烦但效果好。

  思路是在Drupal的模板文件中嵌入PHP程序代码,读取$_SERVER参数并记录到数据库中,通过对参数及访问频率的判断来决定是否要访问者提交验证码,如果验证码错误或者不填写的次数过多则屏蔽,可以通过host反向dns查找来判别常见搜索引擎。

  这个程序还稍微有点复杂,以前修改开源PHP程序都是直接上手,这个程序还编写了流程图,数据库表结构也是自己规划的,为了避免拉慢速度,MySQL中采用了Memory引擎,对于多是临时访问记录已经够用了。程序写得很烂,就不放在博客中了。

  这个程序anti-scraping.php上周调试了几天,本周刚刚投入试用,已经可以从日志中看到效果,还需要不断改进,例如增加黑名单、白名单、尝试改用Drupal标准第三方模块的方式等。因为完成采用自己编程实现,所以可以对判别标准、屏蔽方式做各种修改尝试,应对各种采集者。


版本历史:

订阅 RSS - 程序