Yii2 Gii Запрещенный код 403 У вас нет прав для доступа к этой странице

у меня есть server машина, и я пытаюсь разрешить использовать IP-адрес моего ПК gii,

IP-адрес моего ПК 192.168.1.101

server IP-адрес машины 192.168.1.102,

я использовал composer установить gii module,

Вот так мой composer.json настройки выглядят так:

"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "*",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
"yiisoft/yii2-gii": "*"},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*"},

я использовал php init а также composer update а также php yii migrate,

Я также вошел в frontend,

Это main.php содержание файла:

return [
'id' => 'app-frontend',
'basePath' => dirname(__DIR__),
'bootstrap' => ['gii'],
'controllerNamespace' => 'frontend\controllers',
'components' => [
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'errorHandler' => [
'errorAction' => 'site/error',
],
],
'params' => $params,
'modules' => [
'gii' => [
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1', '::1', '192.168.1.101'],
'password' => '123456'
],
],
];

13

Решение

У меня была похожая проблема, и я попробовал все изменения ipFilter. В конце мне нужно было добавить это в main-local.php. Что было странно, потому что у меня было расширенное приложение, и настройки были для «yii2 basic» установки.
http://www.yiiframework.com/doc-2.0/guide-start-gii.html

if (!YII_ENV_TEST) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';

$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = 'yii\gii\Module';}

Я должен также указать, я действительно добавил это к main.php

    'modules' => [
'gii' => [
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1', '::1', '192.168.1.*', 'XXX.XXX.XXX.XXX'] // adjust this to your needs
],
],
26

Другие решения

После инициации в dev Режим я должен был изменить свой \backend\config\main-local.php и добавьте «позволенные».

Позволяет ВСЕ IP, поэтому рекомендуется только для внутреннего использования!
Подстраивайтесь под свои нужды.

$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'allowedIPs' => ['*'],
];
11

В текущей версии Yii вы должны сделать это в web.php, чтобы разрешить доступ к Gii:

//$config['modules']['gii'] = 'yii\gii\Module'; // <--- replace this line
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'allowedIPs' => ['XXX.XXX.XXX.XXX', 'YYY.YYY.YYY.YYY']
];
7

Измените ваш /common/config/main-local.php следующим образом:

    return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=YourDatbase',
'username' => 'YourDBUserName',
'password' => 'YourDBPassword',
'charset' => 'utf8',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
// 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' => true,
],
],
// Add this to get debug and gii to work
'modules' => [
'gii' => [
'class' => 'yii\gii\Module',
// permits any and all IPs
// you should probably restrict this
'allowedIPs' => ['*']
],
'debug' => [
'class' => 'yii\debug\Module',
// permits any and all IPs
// you should probably restrict this
'allowedIPs' => ['*']
]
]
];
4

Код работал для меня (yii 2.0.8) после добавления восклицательного знака (!) Перед YII_ENV_DEV внутри if part ::

if (!YII_ENV_TEST) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [
'class' => 'yii\debug\Module',
];
$config['modules']['debug']['allowedIPs'] = ['*'];

$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
];
$config['modules']['gii']['allowedIPs'] = ['*'];

}
3

Если есть сомнения, проверьте журналы. Там есть предупреждение, которое должно сказать вам что-то вроде

10  06:00:19.040    warning yii\gii\Module::checkAccess Access to Gii is denied due to IP address restriction. The requested IP is 127.0.0.1
11  06:00:19.041    error   yii\web\HttpException:403   exception 'yii\web\ForbiddenHttpException' with message 'You are not allowed to access this page.' in ......./html/vendor/yiisoft/yii2-gii/Module.php:112

Вероятно, вы ошибаетесь по поводу Ip. Я только что попробовал конфигурацию, которая у вас есть, и она работает для меня.

PS1: Вы не должны включать Gii на сервере, но я предполагаю, что вы уже это знаете, и это все еще среда разработки.

PS2: в Yii2 отсутствует настройка пароля для gii

2

Я нашел ответ, и это должно быть хорошо задокументировано командой yii!

После того как я использовал init команда, в /frontend/config/main-local.php, Я нашел:

if (!YII_ENV_TEST) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';

$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = 'yii\gii\Module';
}

Мое приложение в dev режим, и т. е. выше объявление, останавливает мой gii работать, так что … прокомментируйте эту строку

1

Я должен был добавить это в конфигурации моего модуля

'gii' => array(
'generatorPaths' => array('bootstrap.gii'),
'class' => 'system.gii.GiiModule',
'password' => 'aaa123',
// If removed, Gii defaults to localhost only. Edit carefully to taste.
'ipFilters' => array('*'),
),
-1
По вопросам рекламы [email protected]