0

ストアのルートにあるコマンド ラインで「シェル」フォルダー内のコンパイラ ステータスをクリックすると、管理者と同様にコンパイラが有効になっていることが返されますが、Magento サイトのルート フォルダーで確認すると、ステータスは無効です!

$/var/www/magento# php シェル/compiler.php の状態
コンパイラのステータス: 無効
コンパイル状態: コンパイル済み
収集されたファイル数: 6764
コンパイル済みスコープ数: 4
$/var/www/magento# cd シェル/
$/var/www/magento/shell# php コンパイラ.php の状態
コンパイラのステータス: 有効
コンパイル状態: コンパイル済み
収集されたファイル数: 6764
コンパイル済みスコープ数: 4

コンパイラ モードをオフにし、再コンパイルしてからオンに戻すことでこれを修正しようとしましたが、同じ結果が得られました。

4

3 に答える 3

0

2行を編集includes/config.phpしてコメントアウトします。defineこれは、Magentoがコンパイラを有効/無効にするために行うすべてのことです。

http://svn.magentocommerce.com/source/branches/1.7/includes/config.php

からのコードスニペットshell/compiler.php

$compiler = $this->_getCompiler();
$compilerConfig = '../includes/config.php';
if (file_exists($compilerConfig)) {
    include $compilerConfig;
}
$status = defined('COMPILER_INCLUDE_PATH') ? 'Enabled' : 'Disabled';

また、APCまたはその他のOPCodeキャッシュを使用することをお勧めします。これにより、同じ問題がはるかに少ない頭痛で解決されます。

于 2012-10-10T15:04:19.657 に答える
0

これは古い投稿だと思いますが、このバグは Magento 1.9 にまだ存在しているようです。他のディレクトリからコンパイラのステータスを確認できるようにしたい場合は、次の行を変更するだけです。

$compilerConfig = '../includes/config.php';

への変更

$compilerConfig = dirname(__FILE__).'/../includes/config.php';
于 2015-02-20T14:56:43.067 に答える
0

これは「設計どおりに機能します」(設計が不十分であることを除いて)。compiler.phpステータスを決定するコードの一部を次に示します。

$compilerConfig = '../includes/config.php';
if (file_exists($compilerConfig)) {
    include $compilerConfig;
}
$status = defined('COMPILER_INCLUDE_PATH') ? 'Enabled' : 'Disabl    ed';

キーラインは$compilerConfig = '../includes/config.php';. このパスは、現在のディレクトリから 1 つconfig.phpのディレクトリに移動して検索します。PHP シェル スクリプトの作業ディレクトリは、それが存在するディレクトリではなく、呼び出されたディレクトリです。

$/var/www/magento# php shell/compiler.php state

スクリプトは次のファイルを探します

/var/www/magento/../includes/config.php

また

/var/www/includes/config.php

見つからないため、無効の状態であると見なされます。

于 2012-10-10T17:11:29.363 に答える