在IIS上托管的SilverStripe会导致cache_dir上的权限错误

时间:2015-01-28 08:04:45

标签: php iis zend-framework silverstripe

我们在IIS上运行SilverStripe(2.4.x),因为客户端需要Windows登录信息。这反过来只能通过IIS。使IIS将此信息代理到Linux服务器是不可能的(至少现在还没有)。 PHP上有impersonate

错误为[User Error] Uncaught Zend_Cache_Exception: cache_dir is not writable。当用户浏览时,这随机出现。通常,有问题的文件是模板缓存文件。

为了解决这个问题,我们尝试了以下方法:

  1. 修改了cache_dir路径生成背后的逻辑。它现在包含模拟用户的用户名:silverstripe-cache/myuser。这使得错误不那么频繁,但它们仍然存在。
  2. 将缓存生命周期设置为-1:SS_Cache::set_cache_lifetime('default', -1, 100);。这仍然会写入文件(但我认为不会使用它们)。
  3. 我发现的可能原因与IIS caching the files PHP tries to write to有关。这是正确的原因还是应该在其他地方搜索问题?

    如果我发现的是真正的原因,我们能做些什么?是否可以完全禁用Zend_Cache,以便它根本不会尝试写入文件?

0 个答案:

没有答案