2016-08-05 4 views
0

Я просто загрузил свой расширенный проект yii на мой centos-сервер, но я не могу пройти мимо фазы переноса. Когда я пытаюсь запустить юй миграции произошла следующая ошибка:Настройка неизвестного свойства: yii console ErrorHandler :: errorAction на сервере linux

`Установка неизвестного свойства: юй \ консоли \ 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. Действие ошибки должно использоваться только с веб-приложениями, а не с консолью. Поэтому переместите это в свои интерфейсные и внешние конфигурации отдельно:

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

А, спасибо. Я удалил main.php в yii.php и включил main-console.php, но main.php, похоже, также называется в другом месте (не знаю, где). Я последовал вашим советам и сделал отдельный файл конфигурации. Я также убедился, что он вызван только в frontend/web/index.php – Toricima

+0

По умолчанию 'common/main.php' всегда прикрепляется в файле' yii' перед другими конфигурациями main.php apps. У меня есть хостинг с кешированием php-файлов, так что у вас будет такая же проблема. – SiZE

0

Атрибут errorAction в категории yii\console\ErrorHandler. Есть один в yii\web\ErrorHandler. Я не уверен, почему это работает на вашей локальной машине, потому что это не должно. Я предполагаю, что там есть другая конфигурация.

Смежные вопросы