2016-08-05 41 views
0

Ich habe gerade meine yii erweiterte Projekt auf meinem Centos-Server hochgeladen, aber ich kann nicht scheinen, über die Migrationsphase zu kommen. Wenn ich versuche, yii Migration der folgende Fehler zu laufen aufgetreten:Einstellung unbekannte Eigenschaft: yii console ErrorHandler :: errorAction auf Linux-Server

'Einstellen unbekannte Eigenschaft: yii \ Konsole \ Fehlerbehandler :: erroraction‘

Ich habe keine Ahnung, warum dies geschieht, weil es gut funktioniert, wenn ich es laufen lokal auf meinem Windows-Computer.

Mein yii Vorprojekt ist etwas anders als ein normaler Yii fortgeschritten. Das Backend wurde vom Frontend getrennt, so dass es nur das Konsolen- und das Frontend-Verzeichnis enthält.

common/config/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; 

Haupt 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, 
]; 

Kann jemand geben Sie mir einige advies, wie dieses Problem zu lösen?

Antwort

0

Sie haben das Problem, dass Sie Fehler Aktion in common/config/main.php angeben. Die Fehleraktion darf nur mit Web-Apps und nicht mit der Konsole verwendet werden. Also verschiebe das separat zu deinen Frontend- und Backend-Konfigurationen:

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

Ah, danke. Ich hatte main.php in yii.php entfernt und nur die main-console.php enthalten, aber es scheint, dass die main.php auch an anderer Stelle aufgerufen wird (weiß nicht wo). Ich habe Ihren Rat befolgt und eine separate Konfigurationsdatei erstellt. Ich habe auch darauf geachtet, dass es nur in frontend/web/index.php aufgerufen wird. – Toricima

+0

Standardmäßig ist 'common/main.php' immer in' yii' Datei vor anderen Anwendungen main.php configs angehängt. Ich habe ein Hosting mit Caching PHP-Dateien, mein Sie haben das gleiche Problem. – SiZE

0

Es gibt kein errorAction Attribut in yii\console\ErrorHandler Klasse. Es gibt eine in yii\web\ErrorHandler obwohl. Ich bin nicht sicher, warum dies auf Ihrem lokalen Computer funktioniert, weil es nicht sollte. Ich nehme an, dass dort eine andere Konfiguration vorhanden ist.