Zend OpenId Consumer storage无法访问存储目录

时间:2012-06-19 09:43:34

标签: php apache zend-framework openid

我有一个在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?

1 个答案:

答案 0 :(得分:0)

感谢Aurimas的评论。对于那些对可能有类似问题的答案感兴趣的人,我已经覆盖了构造函数:

$dir = new Zend_OpenId_Consumer_Storage_File('/tmp');
$consumer = new Zend_OpenId_Consumer($dir);