it-swarm.com.de

Yii2 Gii Verbotener Code 403 Sie dürfen nicht auf diese Seite zugreifen

Ich habe eine server-Maschine und versuche, meiner IP-Adresse des PCs die Verwendung von gii zu erlauben.

Meine IP-Adresse des PCs lautet 192.168.1.101

Die server Maschinen-IP ist 192.168.1.102.

Ich habe composer verwendet, um den gii module zu installieren.

So sehen meine composer.json-Einstellungen aus:

"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": "*"
    },

Ich habe php init und composer update und php yii migrate verwendet.

Ich bin auch in der frontend eingeloggt.

Dies ist der Inhalt der main.php-Datei:

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

Ich hatte ein ähnliches Problem und versuchte alle verschiedenen ipFilter-Änderungen. Am Ende musste ich dies zu main-local.php hinzufügen. Was seltsam war, weil ich eine fortgeschrittene Anwendung hatte und die Einstellungen für 'yii2 basic' waren.
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';}

Ich sollte auch darauf hinweisen, dass ich dies main.php hinzugefügt habe

    '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
johnsnails

Nach dem init im dev-Modus musste ich meinen \backend\config\main-local.php ändern und die 'allowedIPs' hinzufügen.

ErlaubtALLEIPs, daher nur für die Verwendung von internen Entwicklern empfohlen! Passen Sie diese an Ihre Bedürfnisse an.

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

In der aktuellen Version von Yii sollten Sie dies in web.php tun, um Zugriff auf Gii zu gewähren:

//$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
Doychin Dokov

Ändern Sie Ihre /common/config/main-local.php wie folgt:

    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
user2161402

Der Code funktionierte für mich (yii 2.0.8) nachdem ein Ausrufezeichen (!) Vor YII_ENV_DEV eingefügt wurde, wenn Teil

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
RAPOS

Überprüfen Sie im Zweifelsfall die Protokolle. Es gibt dort eine Warnung, die Ihnen etwas sagen sollte

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

Wahrscheinlich liegen Sie in Bezug auf die Ip falsch. Ich habe gerade die Konfiguration ausprobiert und sie funktioniert für mich.

PS1: Du solltest Gii nicht auf einem Server aktiviert haben, aber ich nehme an, du weißt das schon und dies ist immer noch die Entwicklungsumgebung.

PS2: In yii2 gibt es für gii kein Passwort

2
Mihai P.

Ich habe die Antwort gefunden, und das sollte vom yii-Team gut dokumentiert werden!

Nachdem ich den Befehl init in /frontend/config/main-local.php verwendet hatte, fand ich:

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';
}

Meine App befindet sich im dev-Modus und die obige Deklaration beendet meine gii-Funktion, so dass diese Zeile kommentiert wird