2016-08-05 5 views
0

私のyosの高度なプロジェクトをcentosサーバーにアップロードしましたが、移行フェーズを過ぎているようです。私が実行しようとするとYiiは以下のエラーが発生した移行:不明なプロパティを設定する:Linuxサーバーでyii console ErrorHandler :: errorAction

不明なプロパティを設定する

`:Yiiの\コンソール\のErrorHandler :: errorActionという」

私はそれを実行したときに、それが正常に動作しますので、私は、これがなぜ起こるか分かりません私のWindowsコンピュータ上でローカルに。

私のyii先進プロジェクトは、通常のYii先進プロジェクトと少し違います。バックエンドはフロントエンドから分離されているので、コンソールとフロントエンドディレクトリだけが含まれています。

共通/設定/ main.php

$config = require(__DIR__ . '/main-console.php'); 
array_push($config['bootstrap'], 'site'); 
$config['components']['errorHandler'] = [ 
    'errorAction' => 'site/error', 
]; 
$config['components']['user'] = [ 
    'identityClass' => 'frontend\models\User', 
    'enableAutoLogin' => true, 
]; 

$config['components']['session'] = [ 
    'name' => 'PHPFRONTSESSID', 
    'savePath' => sys_get_temp_dir(), 
]; 

$config['components']['request'] = [ 
    'cookieValidationKey' => 'IBzCJMjLWUaXMZemYUej', 
    'csrfParam' => '_frontendCSRF', 
]; 

$config['components']['site'] = [ 
    'class' => 'frontend\components\SiteComponent', 
]; 

return $config; 

メインconsole.php

$params = array_merge(
    require(__DIR__ . '/params.php') 
); 

return [ 
    'id' => 'app-frontend', 
    'basePath' => dirname(__DIR__), 
    'bootstrap' => ['log','debug'], 
    'sourceLanguage' => 'en-US', 
    'controllerNamespace' => 'frontend\controllers', 
    'aliases' => [ 
     '@local_media' => '@frontend/web/uploads/media', 
    ], 
    'modules' => [ 
     'debug' => [ 
      'class' => 'yii\debug\Module', 
     ], 
    ], 
    'components' => [ 
     'cache' => [ 
      'class' => 'yii\caching\FileCache', 
     ], 
     'i18n' => [ 
      'translations' => [ 
       'app*' => [ 
        'class' => 'yii\i18n\PhpMessageSource', 
        'basePath' => '@frontend/messages', 
       ], 
      ], 
     ], 
     'assetManager' => [ 
      'bundles' => false, 
     ], 
     'mailer' => [ 
      'class' => 'yii\swiftmailer\Mailer', 
     ], 
     'log' => [ 
      'traceLevel' => YII_DEBUG ? 3 : 0, 
      'targets' => [ 
       [ 
        'class' => 'yii\log\FileTarget', 
        'levels' => ['error', 'warning', 'trace'], 
       ], 
      ], 
     ], 
     'defaultRoute' => 'site/view', 
     'urlManager' => [ 
      'enablePrettyUrl' => true, 
      'showScriptName' => true, 
      'enableStrictParsing' => false, 
      'rules' => require('routes.php'), 
     ], 
    ], 
    'params' => $params, 
]; 

誰かが私にこの問題を解決する方法についていくつかのadviesを与えることはできますか?

答えて

0

エラー処理をcommon/config/main.phpに指定すると問題が発生します。エラーアクションは、コンソールではなくWebアプリケーションでのみ使用する必要があります。したがってこれをフロントエンドとバックエンドの設定に個別に移してください:

$config['components']['errorHandler'] = [ 
    'errorAction' => 'site/error', 
]; 
+0

ああ、ありがとう。私はyii.phpのmain.phpを削除してmain-console.phpだけを含んでいましたが、main.phpもどこか別の場所で呼び出されているようです(どこにいなくても)。私はあなたの助言に従って、別の設定ファイルを作った。また、frontend/web/index.phpでのみ呼び出されていることを確認しました – Toricima

+0

デフォルトでは、 'common/main.php'は他のアプリケーションのmain.php設定より前に' yii'ファイルに常に添付されています。私はphpファイルをキャッシュしてホスティングしていますが、私も同じ問題があります。 – SiZE

0

yii\console\ErrorHandlerクラスにはerrorActionという属性はありません。しかし、yii\web\ErrorHandlerに1つあります。私はそれがあなたのローカルマシンでなぜ機能するのか分からないので、それはすべきではありません。私はいくつかの他の構成がそこにあると思います。

関連する問題