我有一个在Zend Framework 1.11中开发的应用程序。我使用Zend_OpenId在合作伙伴网站上创建单一登录。这一直运行良好,直到我将我的PHP版本升级到5.3.13。我现在得到以下错误:
Error: Cannot access storage directory /root/tmp/
我已将此跟踪到Zend_OpenId_Consumer_Strorage_File。临时目录由getenv('TMP')设置,返回/ root / tmp。如果我通过将tmp目录硬编码到/ tmp来覆盖它,我的OpenId SSO应用程序将再次运行。
我有第二台应用程序正在运行的服务器,但它运行的是早期版本的PHP 5.3。测试getenv('TMP')在该服务器上返回false,因此Zend查找/ tmp。
是否可以:
a)覆盖Zend中的存储目录? b)在运行5.3.13的服务器上禁用getenv,使其返回false,因此Zend查找/ tmp而不是/ root / tmp?
答案 0 :(得分:0)
感谢Aurimas的评论。对于那些对可能有类似问题的答案感兴趣的人,我已经覆盖了构造函数:
$dir = new Zend_OpenId_Consumer_Storage_File('/tmp');
$consumer = new Zend_OpenId_Consumer($dir);