我有一个安装了CAPTCHA和ReCAPTCHA模块的Drupal 7站点,但是我遇到了缓存问题(但不是正常问题!)。问题是我的用户注册页面上应该有一个CAPTCHA,但有时这个CAPTCHA将停止显示,直到我通过Admin手动清除缓存 - >表现 - >清除所有缓存。
我正在使用Chrome中的匿名窗口进行检查,以确保Drupal无法识别我并且不显示验证码,即使我将CAPTCHA的持久性设置设置为“始终添加挑战”
我尝试过使用CAPTCHA和缓存设置,但似乎没有任何影响。在线的所有其他信息似乎与如何在CAPTCHA页面上重新启用缓存有关,我的问题恰恰相反。
我也成功地在其他Drupal 7版本上使用了CAPTCHA而没有任何问题,并且无法弄清楚为什么会出现这个问题。
该网站为http://respirometry.org。如果您转到用户注册页面,您可能会看到或未看到验证码,具体取决于我多久以前手动清除缓存。
我浏览了Drupal的日志,注意到当CAPTCHA停止工作时我收到了关于file_temp_location的错误。我去了Admin - >文件系统并将“临时目录”更改为/ tmp,这不会引发错误。
该错误似乎与ISPConfig设置网站的方式有关。它可以通过drupal.respirometry.org或respirometry.org访问,它们的openbasedir设置略有不同,所以我的选项似乎是将临时目录设置为/ tmp,或者更改两个站点上的openbasedir设置以便他们可以访问彼此的临时目录。
答案 0 :(得分:1)
问题是由无效的临时文件位置引起的。服务器和HTTP主机别名的性质导致某些请求无法写入临时位置。这导致了级联,阻止了CAPTCHA的工作。我将别名修改为全部重定向到主URL,并将临时文件夹更改为/ tmp只是为了更好的措施,并且CAPTCHA保持完整24小时没有问题。