3

こんにちは、Zend Framework に問題があります。
最初に次のメッセージが表示されました: メッセージ:
一時ディレクトリを特定できませんでした。手動で cache_dir を指定してください。
私はグーグルを検索し、この投稿を見つけました: Zend Framework : Could not determine temp directory, please specify a cache_dir manual
I read it and now I get the form in the form I get the following error:
(Everywhere where I put .. in the error meansメッセージ: cache_dir

はディレクトリでなければなりません

- #0 /home/daan/domains/../library/Zend/Cache/Backend/File.php(154): Zend_Cache::throwException('cache_dir must ...')
 - #1 /home/daan/domains/../library/Zend/Cache/Backend/File.php(121): Zend_Cache_Backend_File->setCacheDir('/domains/daan.h...')
 - #2 /home/daan/domains/../library/Zend/Cache.php(153): Zend_Cache_Backend_File->__construct(Array)
 - #3 /home/daan/domains/../library/Zend/Cache.php(94): Zend_Cache::_makeBackend('File', Array, false, false)
 - #4 /home/daan/domains/../library/Zend/Locale/Data.php(307): Zend_Cache::factory('Core', 'File', Array, Array)
 - #5 /home/daan/domains/../library/Zend/Locale/Format.php(796): Zend_Locale_Data::getList('nl_NL', 'day')
 - #6 /home/daan/domains/../library/Zend/Locale/Format.php(1106): Zend_Locale_Format::_parseDate('16-02-2013', Array)
 - #7 /home/daan/domains/../library/Zend/Date.php(4763): Zend_Locale_Format::getDate('16-02-2013', Array)
 - #8 /home/daan/domains/../library/Zend/Validate/Date.php(175): Zend_Date::isDate('16-02-2013', 'MM-DD-YYYY', NULL)
 - #9 /home/daan/domains/../library/Zend/Form/Element.php(1391): Zend_Validate_Date->isValid('16-02-2013', Array)
 - #10 /home/daan/domains/../library/Zend/Form.php(2135): Zend_Form_Element->isValid('16-02-2013', Array)
 - #11/home/daan/domains/../application/controllers/BugController.php(27): Zend_Form->isValid(Array)
 - #12 /home/daan/domains/../library/Zend/Controller/Action.php(513): BugController->submitAction()
 - #13 /home/daan/domains/../library/Zend/Controller/Dispatcher/Standard.php(289): Zend_Controller_Action->dispatch('submitAction')
 - #14 /home/daan/domains/../library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
 - #15 /home/daan/domains/../library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
 - #16 /home/daan/domains/../library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
 - #17 /home/daan/domains/../public_html/index.php(26): Zend_Application->run()
 - #18 {main} 

アプリケーション.ini:

resources.cachemanager.configFiles.frontend.name = File
resources.cachemanager.configFiles.frontend.customFrontendNaming = false
resources.cachemanager.configFiles.frontend.options.lifetime = false
resources.cachemanager.configFiles.frontend.options.automatic_serialization = true    
resources.cachemanager.configFiles.backend.name = File
resources.cachemanager.configFiles.backend.customBackendNaming = false
resources.cachemanager.configFiles.backend.options.cache_dir = APPLICATION_PATH      "/../tmp"
resources.cachemanager.configFiles.frontendBackendAutoload = false

初期キャッシュ:

 protected function _initCaching() {
$frontend = array(
'lifetime' => $time,
'automatic_serialization' => true
);
$backend = array(
'cache_dir' => sys_get_temp_dir(),
);
$cache = Zend_Cache::factory('core', 'File', $frontend, $backend);
Zend_Registry::set('cache', $cache);

}

フォルダ構造:
.htpasswd
アプリケーション
awstats
ライブラリ
ログ
public_ftp
public_html
tmp

4

8 に答える 8

7

cache_dir はディレクトリでなければなりません:

この問題は通常、コードを別のホストまたはサーバーに移動したときに発生します。この問題には主に2つの解決策があります

1 - キャッシュ ディレクトリが書き込み可能であることを確認するか、magento の var フォルダーに書き込み可能にすることができます

ただし、この状況が機能しない場合があるため、別の解決策を次に示します。この場所 lib/Zend/Cache/Backend/ に移動し、file.php ファイルを開くと、次のようなコードが表示されます

protected $_options = array(
        'cache_dir' => null,
        'file_locking' => true,
        'read_control' => true,
        'read_control_type' => 'crc32',
        'hashed_directory_level' => 0,
        'hashed_directory_umask' => 0700,
        'file_name_prefix' => 'zend_cache',
        'cache_file_umask' => 0600,
        'metadatas_array_max_size' => 100
    );

このコードを以下のように変更します

protected $_options = array(
        'cache_dir' => '/var/www/html/webkul/magento/tmp',
        'file_locking' => true,
        'read_control' => true,
        'read_control_type' => 'crc32',
        'hashed_directory_level' => 0,
        'hashed_directory_umask' => 0700,
        'file_name_prefix' => 'zend_cache',
        'cache_file_umask' => 0600,
        'metadatas_array_max_size' => 100
    );

構成に従って、cache_dir のパスを割り当てます。

于 2013-04-16T09:07:32.597 に答える
0

キャッシュ ディレクトリのフル パスを割り当てます。例えば、

'cache_dir' => '/var/www/html/var/cache1',
于 2016-03-25T09:50:36.187 に答える
0

この質問の答えは、File.php ファイルを開いて、tmp フォルダーのパスを変更することです。この問題は主に、サイトをあるサーバーから別のサーバーに転送するときに発生します。サイトを転送しても、tmp フォルダーのパスは新しいものに変更されません。そこで、file.php を編集して、tmp フォルダーのパスを変更します。

于 2014-01-14T04:56:48.897 に答える
0

Zend がキャッシュ ディレクトリを見つけられない可能性があります。このように Bootstrap.php でこれを設定してみてください

protected function _initCache() {
    $frontend = array(
        'lifetime' => $time,
        'automatic_serialization' => true
    );
    $backend = array(
        'cache_dir' => sys_get_temp_dir(), /**automatically detects**/
    );
    $cache = Zend_Cache::factory('core', 'File', $frontend, $backend);
    Zend_Registry::set('cache', $cache);
}
于 2013-04-16T07:51:17.140 に答える
0

ブートストラップから関数を削除し_initCachingます。これと application.ini エントリは両方とも同じものをセットアップしようとしている (ただし、異なるキャッシュの場所を使用している) ため、持つべきではありません。

キャッシュディレクトリはAPPLICATION_PATH "/../tmp"、アプリケーションのルート (アプリケーションフォルダーではなく) にある「tmp」というフォルダーに設定されています。tmp フォルダーがこの場所に存在することを 100% 確信していますか? その場合は、代わりにフル パスを使用するように application.ini 構成を変更してみてください。

resources.cachemanager.configFiles.backend.options.cache_dir = "/home/daan/domains/whatever/tmp"

問題が解決するかどうかを確認するだけです。

それでも動作しない場合は、アプリケーションのファイル構造に関する詳細情報を投稿してください。

于 2013-04-16T09:31:19.917 に答える
0

magento root

Creating "tmp" file in the magento directory solved this error for me. I was able to access admin easily

于 2015-10-18T00:02:29.867 に答える
0

のパスを変更し/install/config/、ファイルを編集vfs.phpして新しいパス名を入力します。

于 2019-01-16T13:48:36.743 に答える
0

CentOS/RedHat でのこの問題の原因の 1 つは Selinux である可能性があります。Selinuxを無効にするだけでこの問題を解決しました

ファイルを編集し/etc/selinux/config、SELINUX を に設定しますdisabled

于 2021-07-16T13:18:00.640 に答える