
2011年初改用Drupal建站一个原因就是看中了对多语言的支持,2011年9月做了“多语言的中国邮政编码系列子网站”。
但当时对多语言的认识并不是很充分,只是单个网站用某一种语言,不了解同一套数据库做多种语言,所以当时做的多语言的中国邮政编码系列子网站
2011年初改用Drupal建站一个原因就是看中了对多语言的支持,2011年9月做了“多语言的中国邮政编码系列子网站”。
但当时对多语言的认识并不是很充分,只是单个网站用某一种语言,不了解同一套数据库做多种语言,所以当时做的多语言的中国邮政编码系列子网站
从用MediaWiki做网站开始,服务器负载一直就是个问题,为了解决这个问题,我们添加了各种缓存,如MediaWiki的多种缓存机制,包括File Cache,也加上了外部的Squid。后来做Drupal网站并不需要Squid,但因为服务器上已经安装了Squid,我们也只好把Drupal架设在Squid之后,另外Drupal也采用了内部core缓存和Boost缓存。
这些缓存机制可以解决不少问题,但缓存主要对数据量小、每页访问多的网站有明显效果,而对于数据量很大、每页访问少的网站起不到明显效果,有时甚至因为缓存文件过多起到反效果,而且缓存更新机制也有些小问题。
在《Drupal的MySQL过度膨胀,清理缓存、翻译表》这篇2012年8月的博文中,提到有些非英文网站的locales_source表不断变大的问题,当时在网上找了一些资料,临时先用删除表中某些特征的数据来解决,半年后再次逐步变大导致网站访问困难,又编写了一个自动删除表中记录的脚本来解决,但始终是治标不治本。
这些天在对其它网站进行多语言扩充的时候,发现有些网站也有类似问题,都是locales_source中包含大量不需要进行翻译的内容,再次查找资料并逐步调试,终于是找到问题的根源并可以解决了,有两种情况:
各国邮编的系列网站是用Drupal 6搭建的,当初都开启了Pathauto, Boost等模块,使用起来也都还正常,后来将一部分网站进行了50种多语言和手机版的扩充,访问速度就感觉要慢一些,最近一两个月来扩充得越多就感觉网站访问越慢,而且后来取消了Boost缓存(因为没有那么大的硬盘来缓存100倍的文件,即使可以放得下,文件数量太多访问也慢)后感觉更慢了一些。
这个问题先在google webmaster tools中有所发现,但直到最近操作越来越慢才引起重视,监控软件的报错也开始频繁,昨天再一查监控软件的记录,这个系列的子网站打开首页都需要20秒以上,基本上没有
这些天在做系列网站的时候,遇到多个子网站、每个子网站都有多个内容类型,希望在首页展示内容类型、包含的字段名称以及页面数量,以前是人工来读取的,但网站多了就很麻烦,而且以后不便更新,这次用Drupal的API调用及SQL语句来实现了。
站内读取的例子:http://hangye.mingluji.com/it/,源代码:
<?php $node_types=node_type_get_names(); print '<ul>'; f
Drupal中的Views是一个非常有用的工具,不需要编程就可以生成各种列表,我们一直在各个网站中使用。但也存在一个问题,举例如下:
我的这个博客基本都是中文写的,但也常遇到国外垃圾信息的骚扰,几乎每天都有英文的垃圾留言,带有一些Spam广告网址,我先是发现后手工删除,但太多了,每天都有上十条,远比正常留言多,后来用Drupal的Captcha插件,但Spammer似乎有技术手段跳过验证,依然不断地发,我被迫把留言添加人工审核、甚至关闭留言一段时间,但只要放开后马上又可以看到垃圾源源不断。😠
春节前同事们一起也谈工作总结、计划的时候,到说到几个开放提交信息、留言的网站存在大量垃圾,每天要花费好多时间去检查、删除。于是我尝试了Drupal的Mollom插件,这个有所谓智能反垃圾的功能,建立在对大量垃圾
最近我们在对一些网站添加多语言以及修改自定义模块的工作中,需要对Boost缓存进行清除操作,逐个网站在菜单中清除需要很长时间,想到用Drush来批量处理系列网站,但Drush本身只能清除系统缓存,并不能处理Boost缓存,在网上找了些资料,找到了boost.drush.inc这个补丁可以解决,只需要在drupal/sites/all/modules/boost目录下新建这个文件,复制这些代码就可以了。
为Drush添加了下面三个命令:
我们一些使用Drupal的网站中启用了系统自带的留言功能contact模块,用户使用的时候填入表单就可以反馈,不需要另外发送邮件,还是很方便的,但同事发现一些要求更改或者删除某个页面的留言中,用户并没有按照我们的提示填写需要更改或者删除的页面网址,导致需要反复联系多次,增加了工作量也不利于客户体验。
本来同事是想在contact表单中加入一栏让用户填写相关的网址,但默认的contact模块并无此功能,这几天在网上搜索了半天才找到办法,就是修改contact模块中的表单及发送php程序可以搞定。我先是尝试直接修改drupal/modules/contact中的两个文
在用Drupal 7搭建新网站时,根据具体情况可以添加多语言及手机版,我记录在博文《Drupal的多语言系列网站搭建和设置》中。
在对更早使用Drupal 6已经搭建起来的网站进行扩充添加多语言及手机版的时候,过程也类似,只是稍微有些不同,下面我也记录一下过程:
初期准备:
2002-2023 v11.7 a-j-e-0