本人从2010年开始使用Drupal,比此前使用的MediaWiki更符合通用的建站要求,Drupal对多语言、多站点的支持也是我选择它的重要因素。从最开始的6.x到7.x再到8.x,我一直都在使用,在这过程中需要修改模板、自建模块,也学会了PHP以及其它一些技术。在本博客中我也记录了很多日常使用Drupal中遇到的问题、解决的办法,希望对其他使用Drupal的朋友有所帮助。

这是 Drupal 分类的页面,点击下面标题查看详细文章内容:
本人从2010年开始使用Drupal,比此前使用的MediaWiki更符合通用的建站要求,Drupal对多语言、多站点的支持也是我选择它的重要因素。从最开始的6.x到7.x再到8.x,我一直都在使用,在这过程中需要修改模板、自建模块,也学会了PHP以及其它一些技术。在本博客中我也记录了很多日常使用Drupal中遇到的问题、解决的办法,希望对其他使用Drupal的朋友有所帮助。

前段时间就留意到Drupal 7的网站日志中总是出现类似这样的报错:
Spent 15.76 ms splitting 3.1 MB object into 4 pieces, cid = cn_18dao_zhougongjiemeng-cache-locale%3Azh-hans
今天发现运行drush cc all清理缓存的时候Linux界面也是报这样的错,于是又在网上找了一些帖子看:
Thousands of warnings about splitting object, can't tur
很多年前刚开始用Drupal时就记录过《直接调用drupal_set_breadcrumb设置面包屑导航条》,在Drupal 6的时候可以直接在node-abc.tpl.php里面使用这种办法,但Drupal 7以后node--abc.tpl.php里面直接调用drupal_set_breadcrumb就无效了,我就刻意添加了一个block,在block里面使用php来调用drupal_set_breadcrumb,这个办法一直都在使用。
最近在为以前做的一把刀词典系列的网站添加Emoji的时候,也想着把几个站内页添加面包屑,在网上搜了一下,还有一个更合适的办
AMP和MIP版本的表单提交一直都需要特别处理,我们以前把Drupal站的contact页面(联系我们表单提交页面)都做了专门的HTML替换处理,让AMP/MIP下都可以使用,但最近我们启用Google Recaptcha屏蔽垃圾,对垃圾发送者确实起到了抑制作用,可AMP/MIP下的表单提交又出现新的问题。
今天查了一下,有AMP有专门的amp-recaptcha-input组件,但只支持reCAPTCHA v3,而我们Drupal站Web版的recaptcha模块只支持reCAPTCHA v2,这就存在不方便的地方了,MIP上还没有听说过对google re
最近发现有一台阿里云RDS数据库服务器负载持续很高,CPU总是占满,当前连接数超过几十的时候网站就被卡得不能动了。除了升级RDS配置以外,可以仔细检查慢查询日志,发现这种查询特别多:
SELECT node.title AS node_title, node.nid AS nid, node.sticky AS node_sticky, node.created AS node_created FROM node node WHERE (( (node.status = 1 OR (node.uid = 0 AND 0 <> 0 AND
Drupal网站的反垃圾一直是个问题,包括页面留言、登录、注册、网站联络等,如果不使用任何反垃圾措施,很快就会被垃圾发送者的信息淹没。🤬
前几年记录过一篇文章《Drupal反垃圾模块的选择》,以前安装过captcha、botcha、honeypot、Mollom、BlockAnonymousLinks等,不过spammer也在不断提高技术,普通的算术或者图片验证码已经不能对付厉害的垃圾发送者了,如果继续加大图片复杂程度的话,对想留言的普通用户很不友好。
最近看到一些Drupal日志中出现这样的报错“无法找到文本格式:1。”,如下图:

检查发现是一些带参数的Views页面,当找不到页面的时候报这个错,再仔细看Views设置,发现这里没有设置格式:
点击打开“全局:文本域”显示:
今天同事反映网站打开巨慢无比,查看阿里云ECS Web服务器正常,而RDS MySQL数据库服务器有堵塞,都是被下面类似语句链接:
SELECT s.source, s.context, t.translation, t.language FROM mingluji_gongshang.locales_source s LEFT JOIN mingluji_gongshang.locales_target t ON s.lid = t.lid AND t.language = 'zh-hans' WHERE s.textgroup
我记忆中我们从2010年开始使用Drupal搭建网站,从开始的Drupal 6到随后主流的Drupal 7再到目前最新的Drupal 8,始终都是使用的PHP 5.x,前几年PHP 7刚刚出来的时候我们也安装过,但发现网站很多报错后就退回了PHP 5.x。
今年Drupal 8的最新版本已经说了不再支持PHP 5.x,需要升级到PHP 7.x,再加上我们看了一些文章说PHP 7的性能比PHP 5提升几倍,这对我们也很有吸引力,想到迟早也得升级的,于是再次尝试升级PHP版本。
Drupal 8推出很有几年了,但我们多数网站还没有从Drupal 7升级,我只有一个《Google AdSense实战宝典》采用的Drupal 8,因为只使用了简单的页面添加、编辑功能。其它有自定义模块和自定义模板的都还没有升级到Drupal 8,怕这个过程很麻烦耗时,因为以前从Drupal 6升级到Drupal 7就是一个大坑。🥵
最近新推出的与Emoji相关的网站准备采用Drupal 8,在编辑《Emoji🙃All表情符號手冊 📝》的时候,摘录翻译了一些Unicode Emoji相关资料,Drupal 8的多语言支持还是不错的,但Book这个模块中的多语
今年以来Drupal的版本升级似乎加快了,而且多是属于与安全有关的升级,不得不去进行。上周发现Drupa 7网站上有提示Drupal 7.66需要升级到最新的7.67,而且是SECURITY UPDATE。⚠
想到前几次小版本升级用drush也很简单,就也运行drush up来进行升级,升级完成后却发现一个下面这样的报错:
❌PHP Fatal error: Class 'finfo' not found in /.../misc/typo3/phar-stream-wrapper/src/Pha
2002-2023 v11.7 a-j-e-0