我是yii框架中的新手。在我的網站gii顯示錯誤gii不在yii工作
錯誤403 您無權訪問此頁面。
我設定的GII在這樣
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'test123',
'ipFilters'=>array('192.168.0.101','127.0.0.1','::1'),
),
配置文件它仍然顯示錯誤
我是yii框架中的新手。在我的網站gii顯示錯誤gii不在yii工作
錯誤403 您無權訪問此頁面。
我設定的GII在這樣
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'test123',
'ipFilters'=>array('192.168.0.101','127.0.0.1','::1'),
),
配置文件它仍然顯示錯誤
要解決這個問題,看在爲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'),
希望解決你的問題..
我已閱讀文章。根據這個我添加了我的IP但它顯示錯誤 – 2012-08-03 10:34:22
Why do I get a 403 error when trying to use Gii?
如果上面的鏈接沒有任何幫助,儘量把風appplication.log文件在運行時文件夾,查看發生了什麼錯誤。
我得到了同樣的錯誤。我用Yii::app()->request->userHostAddress
檢查了我的IP;事實證明,這是返回一個IPv6地址,看起來喜歡這個ab01::1
。這可能是一種行爲,尤其是當你使用Safari時(在OS X上... OS X上的Chrome瀏覽器顯示正常的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'),
),
這是唯一爲我工作行:
'ipFilters'=>array($_SERVER['REMOTE_ADDR']),
你是否意識到這是一個安全風險? IP過濾器是有原因的。如果該文件將其轉換爲生產系統會怎樣? – DCoder 2012-12-30 16:58:05
這一個是正確的! – joydesigner 2013-10-15 04:26:36
然而,這是一個安全風險,如果您知道自己在做什麼並且擁有強大的訪問密碼,這可能非常有用。感謝您的解決方案。 – 2014-05-15 14:05:40
繼sandy8086的好回答。如果您的遠程主機是雙堆棧(IPv6/IPv4),那麼您可能會在您的子網前綴範圍內自動分配動態IPv6地址。使用通配符'*'的IPv4方法也可以與IPv6地址一起使用,因此:'ab01:1234:5678:abcd:*',如果您有一個/ 64前綴,這將匹配您的IPv6網絡上的任何地址。這對我有用,當我遇到'錯誤403'時遇到問題,並且當我發現使用Yii :: app() - > request-> userHostAddress時丟棄了我通過IPv6連接的便士。
你可以設置...
'ipFilters' => false
從文檔http://www.yiiframework.com/doc/api/1.1/GiiModule#ipFilters-detail ...
如果要允許所有IP訪問GII,你可以通過設置這個 屬性是假的(不要這樣做,除非你知道後果!!!)
我有一個非常類似的問題。對我來說,這是我的用戶帳戶沒有寫入我的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地址)的情況下,我會按照this answer通過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',
];
}
後,使用此默認代碼替換它,
和用戶這網址。
您可以檢查'的Yii ::應用程序的輸出() - >請求 - > userHostAddress'? – 2012-08-03 15:51:20
當您嘗試訪問'gii'時,您是否已經登錄?你有沒有對'UserIdentity.php'做任何修改? – 2012-08-04 00:57:33
嘗試刪除你的yii應用程序cookie! http://www.yiiframework.com/forum/index.php/topic/9646-cant-get-past-gii-login-page/ – Nimir 2012-08-04 04:06:09