1

私はZendを初めて使用し、数日間使用します。

致命的なエラーメッセージが表示されます:

致命的なエラー:キャッチされない例外'Zend_Cache_Exception'とメッセージ'cache_dir "/ home / [REDACTED] /application/../data/tmp/" is not writable' in /home/[REDACTED]/library/Zend/Cache.php: 209
スタックトレース:
#0 /home/[編集済]/library/Zend/Cache/Backend/File.php(181):Zend_Cache :: throwException('cache_dir "/ hom ...')
#1 /home/[編集済み]/library/Zend/Cache/Backend/File.php(129):Zend_Cache_Backend_File-> setCacheDir('/ home / user / Proj ...')
#2 /home/[編集済]/library/Zend/Cache.php(153):Zend_Cache_Backend_File-> __ Construct(Array)
#3 /home/[編集済]/library/Zend/Cache.php(94):Zend_Cache :: _ makeBackend('File'、Array、false、false)
#4 /home/[編集済]/application/Bootstrap.php(42):Zend_Cache :: factory('Core'、'File'、Array、Array)
#5 /home/[編集済]/library/Zend/Application/Bootstrap/BootstrapAbstract.php(669):Bootstrap-> _ initCache()
#6 / home / [REDACTED] /library/Zend/Applica in /home/[REDACTED]/library/Zend/Cache.php on line 209

エラーメッセージによると、ディレクトリのフォルダ権限の問題が予想されますtmp。ただし、ディレクトリは書き込み可能です。

user @ [REDATCED]:〜/ [REDATCED] / data $ ls -hal
合計24K
drwxrwxr-x6ユーザーuser4,0KJan718:40。
drwxr-xr-x12ユーザーuser4,0KJan 9 12:50 ..
drwxrwxr-x3ユーザーユーザー4,0KDez1711:42ロケール
drwxrwxr-x2ユーザーユーザー4,0KDez1711:42ログ
drwxrwxr-x2ユーザーユーザー4,0KDez1711:42セッション
drwxrwxr-x2ユーザーuser4,0KJan 7 18:40 tmp

回避策は、次の行にコメントを付けることですapplication/Bootstrap.php

    保護された関数_initCache(){
          $ frontendOptions = array(
              'lifetime' => 7200、//2時間のキャッシュライフタイム
              'automatic_serialization' => true
          );

          $ backendOptions = array(
              'cache_dir'=>APPLICATION_PATH。'/../data/tmp/'//ディレクトリ
          );

          //Zend_Cache_Coreオブジェクトを取得します
          $ this-> cache = Zend_Cache :: factory('Core'、'File'、
            $ frontendOptions、$ backendOptions);

          Zend_Registry :: set('cache'、$ this-> cache);

          Zend_Date :: setOptions(array(
              'キャッシュ'=>$ this-> cache
          ));

この回避策は同僚によって提案されました。ここで何をしているのか、またはこのコードがZendまたはコードベースの一部である場合でもわかりません。醜いハッキングや、コードをコメントアウトして「修正」したり、自分が何をしているのか、その背後にある理由を知らずに何かをしたりするのは好きではありません。

その上、コードは私の同僚のマシンで機能しているようです。そして、リポジトリからコードコミットをプルするたびに、コメントのないコピーを取得します。

私はおそらくリポジトリなどからファイルを除外することができますが(私もgitを初めて使用します)、私は本当に好きです:

  • エラーの原因を知る
  • 解決策を知る
4

3 に答える 3

5

This error typically occurs because of permissions.

To solve this, if you're using apache as your web server, assign ownership to apache.

On my Fedora Core machine I solved this by simply issuing:

chown my_current_name:apache -R /var/www/project_name 
于 2014-08-28T17:54:52.310 に答える
1

この質問を書いているときに、自分の間違いに気づきました。tmpディレクトリは自分自身と同じグループの他のユーザーが書き込み可能であり、Zendは別のユーザーとしてファイルにアクセスするようです。解決策はchmod 777、フォルダーを書き込み可能にすることでした。

于 2013-01-09T15:48:12.290 に答える
1

同じ問題があり、簡単な手順に従って解決しました。lib>Zend>Cache>Backend>File.php この行を見つけます

protected $_options = array(
'cache_dir' => 'null',

引用符を削除してそのままにしておきます

protected $_options = array(
'cache_dir' => null, 

それは本当に私のために働きました。

于 2015-12-22T06:51:20.297 に答える