GII没有警予工作(gii not working in yii)

2019-06-26 17:32发布

我在Yii框架新。 在我的网站GII显示错误

错误403你不允许访问此页面。

我设置了GII在这样的配置文件

'gii'=>array(
    'class'=>'system.gii.GiiModule',
    'password'=>'test123',
    'ipFilters'=>array('192.168.0.101','127.0.0.1','::1'),
),

它仍然显示错误

Answer 1:

这仅仅是为我工作的一行:

'ipFilters'=>array($_SERVER['REMOTE_ADDR']),


Answer 2:

你可以设置...

'ipFilters' => false

从文档http://www.yiiframework.com/doc/api/1.1/GiiModule#ipFilters-detail ...

如果要允许所有IP访问GII,您可以设置该属性是假的(除非你知道后果千万不要这么做!)



Answer 3:

为了解决这个问题,看在为GII模块部分的主配置文件,并添加

ipFilters阵列,包括你自己的IP:

//保护/配置/ main.php

返回阵列(

...

'modules' => array(

    'gii' => array(

        'class'     => 'system.gii.GiiModule',

        'password'  => 'Enter Your Password Here',

        'ipFilters' => array('127.0.0.1', '192.168.1.7'),   // EDIT TO TASTE

    ),

    ...

该ipFilters财产可包括尽可能多的项目,只要你喜欢,他们可以是直

IP地址或通配符如“192.168.1。*”。

如果底层平台支持,以及IPv6地址以及支持“:: 1”

表示本地主机(其在一些配置中需要)。

要小心,不要打开GII的过于广泛的观众,以免它成为一个安全隐患。

注:Yii的1.1.6直接添加默认筛选器的股票配置文件:

//如果去掉,GII默认只本地主机。 精心编辑的味道。

'ipFilters'=>array('127.0.0.1','::1'),

希望解决您的问题..



Answer 4:

从sandy8086的很好的答案继。 如果你的远程主机是双堆栈(IPv6 / IPv4的),那么你可以有一个动态的IPv6地址在子网前缀范围内自动分配。 使用通配符的IPv4方法“*”也可以用IPv6地址,从而通过:“AB01:1234:5678:ABCD:*”,如果你有一个/ 64前缀,这将IPv6网络上的匹配任何地址。 这为我工作,得到了时,我曾与“错误403”的麻烦,当我发现,使用Yii ::应用程序()一分钱下降 - >请求 - > userHostAddress,我是通过IPv6连接。



Answer 5:

为什么我会尝试使用GII当一个403错误?

如果上面的链接没有任何帮助,尽量把风appplication.log文件在运行时文件夹,查看发生了什么错误。



Answer 6:

我得到了同样的错误。 我检查我的IP用Yii::app()->request->userHostAddress ; 原来,这是回归其看起来是链接才可此IPv6地址ab01::1 。 这可能是特别是如果你使用的是Safari(在OS X ...的Chrome OS X上正显示出正常的127.0.0.1 IP。这两个WebKit浏览器奇怪的古怪行为)的行为。

所以,简单地说Yii::app()->request->userHostAddress在你的视图中,然后将结果从输出复制并粘贴到config / main.php:

    'gii'=>array(
        ...
        // If removed, Gii defaults to localhost only. Edit carefully to taste.
        'ipFilters'=>array('127.0.0.1','192.168.1.*','ab01::1','::1'),
    ),


Answer 7:

我有一个非常类似的问题。 对我来说这是我的用户帐户没有WRITEACCESS我的PHP session_save_path文件夹。 当我在Windows 7浏览它,它告诉我,我需要的权限,如果我选择确定,将给予它。 我做到了。 一切都被固定。



Answer 8:

试试这个

    'gii' => array(
        'class' => 'system.gii.GiiModule',
        'password' => 'pasword',
        'ipFilters'=> false,
        'generatorPaths' => array(
            'bootstrap.gii'
        ),
    ),


Answer 9:

假设在你的开发服务器位于(相同MACHING,LAN,WAN),以及如何对服务器的IP地址发生变化。

  1. 如果您的服务器在同一台机器上运行一样客户端(浏览器),你从本地主机本身请求的页面,这样您的IP地址为127.0.0.1,默认的设置工作。

  2. 如果您的服务器是在不同的机器上,但在你的局域网(LAN),您的IP地址通常是这个样子192.168.1.20服务器。 你可以找到它,并调整代码。

  3. 如果你的服务器是整个网络(WAN),那么你要么有一个

    • 静态IP地址(如果你是幸运的)
    • 或固定范围内的动态IP地址,
    • 或者更糟,或多或少不可预知的动态IP地址。

只有当最后的(不可预知的动态IP地址)的情况下,我会按照这个答案由schmunk谁也指出风险。

使用$_SERVER['REMOTE_ADDR']似乎没有必要给我。



Answer 10:

确保世界上没有预先生成的配置在配置文件的底部。 那些将覆盖任何你在上面添加:

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

应该成为(例如,允许任何人):

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $secure = ['allowedIPs' => ['*']];

    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = ['class' => 'yii\debug\Module'] + $secure;

    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = ['class' => 'yii\gii\Module'] + $secure;
}


Answer 11:

if (YII_ENV_DEV) {

    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => 'yii\debug\Module',
    ];

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

通过使用此默认代码后替换它,

和用户这个网址。

HTTP://localhost/basic/web/index.php R = GII



文章来源: gii not working in yii
标签: php yii gii