plantillas para mvc modulos guide framework formularios espaƱol ejemplos php yii gii

php - para - gii no funciona en yii



yii2 ejemplos (11)

Soy nuevo en el marco yii. En mi sitio gii muestra el error

Error 403 No tiene permitido acceder a esta página.

Configuré el gii en el archivo de configuración como este

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

aún muestra el error



Para solucionar esto, busque en su archivo de configuración principal la sección de módulos para Gii, y agregue un

matriz de ipFilters que incluye tu propia IP:

// protected / config / main.php

matriz de retorno (

... ''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 ), ...

La propiedad ipFilters puede incluir tantos elementos como desee, y pueden ser directos

Direcciones IP o comodines como "192.168.1. *".

Las direcciones IPv6 son compatibles también si la plataforma subyacente lo admite, y ":: 1"

representa localhost (que puede ser necesario en algunas configuraciones).

Tenga cuidado de no abrir Gii a un público demasiado amplio para que no se convierta en un riesgo de seguridad.

Nota: Yii 1.1.6 agrega el filtro predeterminado directamente al archivo de configuración de stock:

// Si se elimina, Gii se configura por defecto en localhost solamente. Edite cuidadosamente para probar.

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

espero que resolvió tu problema ...


Estaba obteniendo el mismo error. Comprobé mi IP con Yii::app()->request->userHostAddress ; resulta que esto está devolviendo una dirección IPv6 que se ve como algo así como ab01::1 . Este puede ser el comportamiento, especialmente si está utilizando Safari (en OS X ... Chrome en OS X muestra la IP 127.0.0.1 normal. Comportamiento extrañamente extraño de estos dos navegadores WebKit).

Entonces, simplemente coloque Yii::app()->request->userHostAddress en una de sus vistas, luego copie el resultado de la salida y péguelo en 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''), ),


A continuación de la buena respuesta de sandy8086. Si su host remoto tiene doble pila (IPv6 / IPv4), entonces puede tener una dirección IPv6 dinámica asignada automáticamente en su rango de prefijo de subred. El método IPv4 de usar un comodín ''*'' también se puede adoptar con la dirección IPv6, por lo tanto: ''ab01: 1234: 5678: abcd: *'', si tuviera un prefijo / 64, coincidiría con cualquier dirección en su red IPv6 . Esto funcionó para mí y lo obtuve cuando tuve problemas con el ''Error 403'' y el centavo cayó cuando descubrí, usando Yii :: app () -> request-> userHostAddress, que me estaba conectando a través de IPv6.



Tuve un problema muy similar. Para mí fue que mi cuenta de usuario no tenía acceso de escritura a mi carpeta PHP session_save_path. Cuando lo busqué en Windows 7, me dijo que necesitaba permiso y que lo otorgaría si elegía OK. Yo si. Todo fue arreglado.


prueba esto

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


Esta es la única línea que funcionó para mí:

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


Asegúrese de que no haya configuración pregenerada en la parte inferior del archivo de configuración. Esos sobrescribirán todo lo que ha agregado anteriormente:

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

Debería convertirse (por ejemplo, permite a cualquiera):

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

Después de reemplazarlo usando este código predeterminado,

y usuario esta url.

http: //localhost/basic/web/index.php? r = gii


Considere dónde se encuentra su servidor de desarrollo (mismo maching, LAN, WAN) y cómo cambia su dirección IP hacia el servidor.

  1. Si su servidor se ejecuta en la misma máquina que su cliente (el navegador), usted solicita la página desde el host local, por lo tanto, su dirección IP es 127.0.0.1 y la configuración predeterminada funciona.

  2. Si su servidor está en una máquina diferente pero en su red de área local (LAN), su dirección IP normalmente se parecería a esta 192.168.1.20 para el servidor. Puedes encontrarlo y ajustar el código.

  3. Si su servidor está en la web (WAN), entonces tendría una

    • dirección IP estática (si tiene suerte)
    • o una dirección IP dinámica dentro de un rango fijo,
    • o peor, una dirección IP dinámica más o menos impredecible.

Solo si la última (dirección IP dinámica impredecible) es el caso, seguiría esta respuesta por schmunk quien también señala el riesgo.

Usar $_SERVER[''REMOTE_ADDR''] parece innecesario.