我在Yii框架新。 在我的网站GII显示错误
错误403你不允许访问此页面。
我设置了GII在这样的配置文件
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'test123',
'ipFilters'=>array('192.168.0.101','127.0.0.1','::1'),
),
它仍然显示错误
我在Yii框架新。 在我的网站GII显示错误
错误403你不允许访问此页面。
我设置了GII在这样的配置文件
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'test123',
'ipFilters'=>array('192.168.0.101','127.0.0.1','::1'),
),
它仍然显示错误
这仅仅是为我工作的一行:
'ipFilters'=>array($_SERVER['REMOTE_ADDR']),
你可以设置...
'ipFilters' => false
从文档http://www.yiiframework.com/doc/api/1.1/GiiModule#ipFilters-detail ...
如果要允许所有IP访问GII,您可以设置该属性是假的(除非你知道后果千万不要这么做!)
为了解决这个问题,看在为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'),
希望解决您的问题..
从sandy8086的很好的答案继。 如果你的远程主机是双堆栈(IPv6 / IPv4的),那么你可以有一个动态的IPv6地址在子网前缀范围内自动分配。 使用通配符的IPv4方法“*”也可以用IPv6地址,从而通过:“AB01:1234:5678:ABCD:*”,如果你有一个/ 64前缀,这将IPv6网络上的匹配任何地址。 这为我工作,得到了时,我曾与“错误403”的麻烦,当我发现,使用Yii ::应用程序()一分钱下降 - >请求 - > userHostAddress,我是通过IPv6连接。
为什么我会尝试使用GII当一个403错误?
如果上面的链接没有任何帮助,尽量把风appplication.log文件在运行时文件夹,查看发生了什么错误。
我得到了同样的错误。 我检查我的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'),
),
我有一个非常类似的问题。 对我来说这是我的用户帐户没有WRITEACCESS我的PHP session_save_path文件夹。 当我在Windows 7浏览它,它告诉我,我需要的权限,如果我选择确定,将给予它。 我做到了。 一切都被固定。
试试这个
'gii' => array(
'class' => 'system.gii.GiiModule',
'password' => 'pasword',
'ipFilters'=> false,
'generatorPaths' => array(
'bootstrap.gii'
),
),
假设在你的开发服务器位于(相同MACHING,LAN,WAN),以及如何对服务器的IP地址发生变化。
如果您的服务器在同一台机器上运行一样客户端(浏览器),你从本地主机本身请求的页面,这样您的IP地址为127.0.0.1,默认的设置工作。
如果您的服务器是在不同的机器上,但在你的局域网(LAN),您的IP地址通常是这个样子192.168.1.20服务器。 你可以找到它,并调整代码。
如果你的服务器是整个网络(WAN),那么你要么有一个
只有当最后的(不可预知的动态IP地址)的情况下,我会按照这个答案由schmunk谁也指出风险。
使用$_SERVER['REMOTE_ADDR']
似乎没有必要给我。
确保世界上没有预先生成的配置在配置文件的底部。 那些将覆盖任何你在上面添加:
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;
}
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