我们在IIS上运行SilverStripe(2.4.x),因为客户端需要Windows登录信息。这反过来只能通过IIS。使IIS将此信息代理到Linux服务器是不可能的(至少现在还没有)。 PHP上有impersonate
。
错误为[User Error] Uncaught Zend_Cache_Exception: cache_dir is not writable
。当用户浏览时,这随机出现。通常,有问题的文件是模板缓存文件。
为了解决这个问题,我们尝试了以下方法:
cache_dir
路径生成背后的逻辑。它现在包含模拟用户的用户名:silverstripe-cache/myuser
。这使得错误不那么频繁,但它们仍然存在。SS_Cache::set_cache_lifetime('default', -1, 100);
。这仍然会写入文件(但我认为不会使用它们)。我发现的可能原因与IIS caching the files PHP tries to write to有关。这是正确的原因还是应该在其他地方搜索问题?
如果我发现的是真正的原因,我们能做些什么?是否可以完全禁用Zend_Cache,以便它根本不会尝试写入文件?