0

我有一个安装了 CAPTCHA 和 ReCAPTCHA 模块的 Drupal 7 站点,但是缓存有问题(但不是正常问题!)。问题是我的用户注册页面上应该显示一个验证码,但有时这个验证码会停止显示,直到我通过管理 -> 性能 -> 清除所有缓存手动清除缓存。

我正在检查 Chrome 中的匿名窗口,以确保 Drupal 无法识别我并且不显示 CAPTCHA,即使我将 CAPTCHA 的持久性设置设置为“始终添加挑战”

我尝试过使用 CAPTCHA 和缓存设置,但似乎没有任何影响。所有其他在线信息似乎都与如何在验证码页面上重新启用缓存有关,而我的问题恰恰相反。

我还成功地在其他 Drupal 7 版本上使用了 CAPTCHA,没有任何问题,并且无法弄清楚为什么这个问题出现了。

该网站是http://respirometry.org。如果您进入用户注册页面,您可能会或可能不会看到验证码,这取决于我多久之前手动清除了缓存。

我查看了 Drupal 的日志,发现当 CAPTCHA 停止工作时,我收到了关于 file_temp_location 的错误。我去了 Admin -> File System 并将“临时目录”更改为 /tmp,这不会引发错误。

该错误似乎与 ISPConfig 设置站点的方式有关。它可以通过 drupal.respirometry.org 或 respirometry.org 访问,它们的 openbasedir 设置略有不同,所以我的选择似乎是将临时目录设置为 /tmp,或者更改两个站点上的 openbasedir 设置,以便他们可以访问彼此的临时目录。

4

1 回答 1

1

该问题是由无效的临时文件位置引起的。服务器和 HTTP 主机别名的性质导致某些请求无法写入临时位置。这导致了阻止 CAPTCHA 工作的级联。我将别名修改为全部重定向到主 URL,并将临时文件夹更改为 /tmp 只是为了更好地衡量,验证码在 24 小时内保持完好无损。

于 2012-10-12T22:12:09.120 回答