Zend Framework 1.11 で開発されたアプリケーションがあります。Zend_OpenId を使用して、パートナーの Web サイトとのシングル サインオンを作成しています。PHP のバージョンを 5.3.13 にアップグレードするまで、これは正常に機能していました。以下に示すエラーが表示されます。
Error: Cannot access storage directory /root/tmp/
これを Zend_OpenId_Consumer_Strorage_File まで追跡しました。一時ディレクトリは、/root/tmp を返す getenv('TMP') によって設定されます。tmp ディレクトリを /tmp にハードコーディングしてこれをオーバーライドすると、OpenId SSO アプリが再び機能します。
アプリが動作する 2 つ目のサーバーがありますが、以前のバージョンの PHP 5.3 を実行しています。getenv('TMP') をテストすると、そのサーバーで false が返されるため、Zend は /tmp を調べます。
次のいずれかが可能ですか?
a) Zend でストレージ ディレクトリをオーバーライドしますか? b) 5.3.13 を実行しているサーバーで getenv を無効にして false を返し、Zend が /root/tmp ではなく /tmp を検索するようにしますか?