Closed RGTimothy closed 7 years ago
Thanks for posting in our issue tracker. In order to properly assist you, we need additional information:
Thanks!
This is an automated comment, triggered by adding the label status:need more info
.
Right now
The error
No error
Sure, please see the stacktrace as below:
Stack trace: #0 /home/mywebsite/public_html/vendor/yiisoft/yii2/di/Container.php(491): yii\base\ErrorHandler->handleError(4096, 'Argument 1 pass...', '/home/mywebsite/...', 491, Array) #1 /home/mywebsite/public_html/vendor/yiisoft/yii2/BaseYii.php(346): yii\di\Container->invoke(Array, Array) #2 /home/mywebsite/public_html/vendor/yiisoft/yii2/base/Module.php(353): yii\BaseYii::createObject(Array, Array) #3 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/controllers/HelpController.php(140): yii\base\Module->getModule('allowedIPs') #4 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/controllers/HelpController.php(77): yii\console\controllers\HelpController->getModuleCommands(Object(yii\console\Application)) #5 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/controllers/HelpController.php(89): yii\console\controllers\HelpController->getCommands() #6 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/controllers/HelpController.php(184): yii\console\controllers\HelpController->getCommandDescriptions() #7 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/controllers/HelpController.php(67): yii\console\controllers\HelpController->getDefaultHelp() #8 [internal function]: yii\console\controllers\HelpController->actionIndex(NULL) #9 /home/mywebsite/public_html/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array) #10 /home/mywebsite/public_html/vendor/yiisoft/yii2/base/Controller.php(154): yii\base\InlineAction->runWithParams(Array) #11 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/Controller.php(119): yii\base\Controller->runAction('', Array) #12 /home/mywebsite/public_html/vendor/yiisoft/yii2/base/Module.php(454): yii\console\Controller->runAction('', Array) #13 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('', Array) #14 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('', Array) #15 /home/mywebsite/public_html/vendor/yiisoft/yii2/base/Application.php(375): yii\console\Application->handleRequest(Object(yii\console\Request)) #16 /home/mywebsite/public_html/yii(22): yii\base\Application->run() #17 {main}
Yes I have. Please check my cron code as below (mywebsite/commands/SysnetCronController.php). I am using basic template of yii 2:
namespace app\commands; use yii\console\Controller; use Yii; Class SysnetCronController extends Controller { public function actionIndex($message = 'hello world') { echo $message . "\n"; } public function actionTest() { echo 'test'; } }
Thanks!
3 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/controllers/HelpController.php(140): yii\base\Module->getModule('allowedIPs')
Looks wrong. Check if you've nested arrays correctly in your config file.
@samdark which config file I need to check? Is it console/db/params/web? So I can paste it here and share it.
Yes, share it with us, please. Ensure you've removed all sensitive data before publishing.
@SilverFire ok sure. Thanks.
use \kartik\datecontrol\Module; $params = require(__DIR__ . '/params.php'); $config = [ 'id' => 'basic', 'name'=>'My Website', 'timeZone' => 'Asia/Jakarta', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log', function(){ Yii::$app->attachBehavior('access',[ 'class' => 'mdm\admin\components\AccessControl', 'allowActions' => [ //'admin/*', // add or remove allowed actions to this list //'site/*', //'user/*', ] ]); }, 'devicedetect'], 'modules' => [ 'datecontrol' => [ 'class' => 'kartik\datecontrol\Module', // format settings for displaying each date attribute (ICU format example) 'displaySettings' => [ Module::FORMAT_DATE => 'dd-MM-yyyy', Module::FORMAT_TIME => 'HH:mm:ss a', Module::FORMAT_DATETIME => 'dd-MM-yyyy HH:mm:ss', //Module::FORMAT_DATETIME => 'php:d-m-Y H:i:s', ], // format settings for saving each date attribute (PHP format example) 'saveSettings' => [ //Module::FORMAT_DATE => 'php:U', // saves as unix timestamp Module::FORMAT_DATE => 'php:Y-m-d', Module::FORMAT_TIME => 'php:H:i:s', Module::FORMAT_DATETIME => 'php:Y-m-d H:i:s', ], // set your display timezone 'displayTimezone' => 'Asia/Jakarta', // set your timezone for date saved to db 'saveTimezone' => 'Asia/Jakarta', // automatically use kartik\widgets for each of the above formats 'autoWidget' => true, // use ajax conversion for processing dates from display format to save format. //'ajaxConversion' => true, // default settings for each widget from kartik\widgets used when autoWidget is true 'autoWidgetSettings' => [ Module::FORMAT_DATE => ['type'=>2, 'pluginOptions'=>['autoclose'=>true]], // example Module::FORMAT_DATETIME => ['type'=>2, 'pluginOptions'=>['autoclose'=>true]], // setup if needed Module::FORMAT_TIME => [], // setup if needed ], // custom widget settings that will be used to render the date input instead of kartik\widgets, // this will be used when autoWidget is set to false at module or widget level. 'widgetSettings' => [ Module::FORMAT_DATE => [ 'class' => 'yii\jui\DatePicker', // example 'options' => [ 'dateFormat' => 'php:Y-m-d', 'options' => ['class'=>'form-control'], ] ] ] // other settings ], 'user' => [ 'class' => 'dektrium\user\Module', 'components' => [ 'manager' => [ 'class' => 'dektrium\user\Module', // Active record classes 'userClass' => 'dektrium\user\models\User', 'tokenClass' => 'dektrium\user\models\Token', 'profileClass' => 'dektrium\user\models\Profile', 'accountClass' => 'dektrium\user\models\Account', // Model that is used on user search on admin pages 'userSearchClass' => 'dektrium\user\models\UserSearch', // Model that is used on registration 'registrationFormClass' => 'dektrium\user\models\RegistrationForm', // Model that is used on resending confirmation messages 'resendFormClass' => 'dektrium\user\models\ResendForm', // Model that is used on logging in 'loginFormClass' => 'dektrium\user\models\LoginForm', // Model that is used on password recovery 'recoveryFormClass' => 'dektrium\user\models\RecoveryForm', // Model that is used on requesting password recovery 'recoveryRequestFormClass' => 'dektrium\user\models\RecoveryRequestForm', ], ], 'enableUnconfirmedLogin' => false, 'confirmWithin' => 21600, 'cost' => 12, 'admins' => ['admin'] ], 'admin' => [ 'layout' => 'left-menu', // default null. other avaliable value 'right-menu' and 'top-menu' 'class' => 'mdm\admin\Module', 'controllerMap' => [ 'assignment' => [ 'class' => 'mdm\admin\controllers\AssignmentController', 'userClassName' => 'dektrium\user\models\User', 'idField' => 'id', // id field of model User ] ], ], 'gridview' => [ 'class' => 'kartik\grid\Module', ], /*'datecontrol' => [ 'class' => 'kartik\datecontrol\Module', // format settings for displaying each date attribute 'displaySettings' => [ 'date' => 'd-m-Y', 'time' => 'H:i:s A', 'datetime' => 'd-m-Y H:i:s A', ], // format settings for saving each date attribute 'saveSettings' => [ 'date' => 'Y-m-d', 'time' => 'H:i:s', 'datetime' => 'Y-m-d H:i:s', ], // automatically use kartik\widgets for each of the above formats 'autoWidget' => true, ],*/ ], 'components' => [ 'devicedetect' => [ 'class' => 'alexandernst\devicedetect\DeviceDetect', ], 'urlManager' => [ 'enablePrettyUrl' => true, /*'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'sales-request'], ],*/ ], 'authManager' => [ 'class' => 'yii\rbac\DbManager', // or use 'yii\rbac\DbManager' 'defaultRoles' => ['Guest'], ], 'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => 'abcdefg', /*'parsers' => [ 'application/json' => 'yii\web\JsonParser', ],*/ ], 'cache' => [ 'class' => 'yii\caching\FileCache', ], 'user' => [ 'identityClass' => 'dektrium\user\models\User', 'enableAutoLogin' => true, ], 'errorHandler' => [ 'errorAction' => 'site/error', ], 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'mail.mywebsite.co.id', 'username' => 'notification@mywebsite.co.id', 'password' => 'password', 'port' => '26', 'encryption' => 'tls', ], // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => false, ], 'mailerlocalization' => [ 'class' => 'yii\swiftmailer\Mailer', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'mail.mywebsite.co.id', 'username' => 'localization@mywebsite.co.id', 'password' => 'password', 'port' => '26', 'encryption' => 'tls', ], // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => false, ], 'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ], ], ], 'db' => require(__DIR__ . '/db.php'), ], /*'as access' => [ 'class' => 'mdm\admin\components\AccessControl', 'allowActions' => [ //'admin/*', // add or remove allowed actions to this list //'site/*', //'user/*', ] ],*/ 'params' => $params, ]; if (YII_ENV_DEV) { // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = 'yii\debug\Module'; $config['bootstrap'][] = 'gii'; //$config['modules']['gii'] = 'yii\gii\Module'; $config['modules']['gii']['class'] = 'yii\gii\Module'; $config['modules']['gii']['generators'] = [ 'kartikgii-crud' => ['class' => 'warrence\kartikgii\crud\Generator'], ]; } return $config;
Yii::setAlias('@tests', dirname(__DIR__) . '/tests'); $params = require(__DIR__ . '/params.php'); $db = require(__DIR__ . '/db.php'); return [ 'id' => 'basic-console', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log', 'gii'], 'controllerNamespace' => 'app\commands', 'modules' => [ 'gii' => 'yii\gii\Module', 'allowedIPs' => ['127.0.0.1', '::1'] // adjust this to your needs ], 'components' => [ 'authManager' => [ 'class' => 'yii\rbac\DbManager', // or use 'yii\rbac\DbManager' ], 'cache' => [ 'class' => 'yii\caching\FileCache', ], 'log' => [ 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ], ], ], 'db' => $db, 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'mail.mywebsite.co.id', 'username' => 'notification@mywebsite.co.id', 'password' => 'password', 'port' => '26', 'encryption' => 'tls', ], // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => false, ], 'mailerlocalization' => [ 'class' => 'yii\swiftmailer\Mailer', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'mail.mywebsite.co.id', 'username' => 'localization@mywebsite.co.id', 'password' => 'password', 'port' => '26', 'encryption' => 'tls', ], // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => false, ], ], 'params' => $params, ];
Yes, as I've said allowedIPs
is nested improperly.
Actually I didn't understand. Its even still got error after I delete allowedIPs line as below:
This is Yii version 2.0.9. The following commands are available: - asset Status: 500 Internal Server Error X-Powered-By: PHP/5.6.30 Content-type: text/html; charset=UTF-8 PHP Warning 'yii\base\ErrorException' with message 'exec() has been disabled for security reasons' in /home/mywebsite/public_html/vendor/yiisoft/yii2/helpers/BaseConsole.php:622 Stack trace: #0 [internal function]: yii\base\ErrorHandler->handleError(2, 'exec() has been...', '/home/mywebsite/...', 622, Array) #1 /home/mywebsite/public_html/vendor/yiisoft/yii2/helpers/BaseConsole.php(622): exec('stty -a 2>&1', Array) #2 /home/mywebsite/public_html/vendor/yiisoft/yii2/helpers/BaseConsole.php(663): yii\helpers\BaseConsole::getScreenSize(false) #3 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/controllers/HelpController.php(214): yii\helpers\BaseConsole::wrapText('Allows you to c...', 33) #4 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/controllers/HelpController.php(67): yii\console\controllers\HelpController->getDefaultHelp() #5 [internal function]: yii\console\controllers\HelpController->actionIndex(NULL) #6 /home/mywebsite/public_html/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array) #7 /home/mywebsite/public_html/vendor/yiisoft/yii2/base/Controller.php(154): yii\base\InlineAction->runWithParams(Array) #8 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/Controller.php(119): yii\base\Controller->runAction('', Array) #9 /home/mywebsite/public_html/vendor/yiisoft/yii2/base/Module.php(454): yii\console\Controller->runAction('', Array) #10 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('', Array) #11 /home/mywebsite/public_html/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('', Array) #12 /home/mywebsite/public_html/vendor/yiisoft/yii2/base/Application.php(375): yii\console\Application->handleRequest(Object(yii\console\Request)) #13 /home/mywebsite/public_html/yii(22): yii\base\Application->run() #14 {main}
Its working now. It was nothing to do with the allowedIPs. I just need to downgrade the php version to 5.5. That's it. Thanks for your help.
You need to change your PHP configuration file and allow exec() function to make it work
I developed a yii2 web, and have some cronjobs running well. But suddenly all of it produce error (I always receive the cron email notification) as details below:
Any idea regarding this issue?