Ich bin neu in yii Rahmen. Auf meiner Seite zeigt gii den Fehler
Fehler 403 Sie dürfen nicht auf diese Seite zugreifen.
Ich setze die gii in der Konfigurationsdatei wie folgt
%Vor%zeigt immer noch den Fehler
Dies ist die einzige Zeile, die für mich funktioniert hat:
%Vor%Um dies zu beheben, suchen Sie in Ihrer Hauptkonfigurationsdatei nach dem Modulbereich für Gii und fügen Sie ein
hinzuipFilters-Array, das eine eigene IP enthält:
// protected / config / main.php
gibt das Array zurück (
%Vor%Die ipFilters-Eigenschaft kann beliebig viele Elemente enthalten und sie können direkt
seinIP-Adressen oder Platzhalter wie "192.168.1. *".
IPv6-Adressen werden auch unterstützt, wenn die zugrunde liegende Plattform dies unterstützt, und ":: 1"
steht für localhost (was in einigen Konfigurationen erforderlich sein kann).
Achten Sie darauf, dass Sie Gii nicht zu einem zu großen Publikum öffnen, damit es nicht zu einem Sicherheitsrisiko wird.
Hinweis: Yii 1.1.6 fügt den Standardfilter direkt zur Bestandskonfigurationsdatei hinzu:
// Wenn es entfernt wird, verwendet Gii standardmäßig nur localhost. Editiere sorgfältig nach Geschmack.
%Vor%hoffe dein Problem gelöst ..
Nach der guten Antwort von sandy8086. Wenn Ihr Remote-Host zweifach gestapelt ist (IPv6 / IPv4), wird möglicherweise automatisch eine dynamische IPv6-Adresse in Ihrem Subnetzpräfixbereich zugewiesen. Die IPv4-Methode zur Verwendung eines Platzhalters '*' kann auch mit der IPv6-Adresse übernommen werden: 'ab01: 1234: 5678: abcd: *', wenn Sie ein Präfix / 64 hätten, würde dies zu jeder Adresse in Ihrem IPv6-Netzwerk passen . Dies funktionierte für mich und bekam, als ich Probleme mit dem "Fehler 403" hatte und der Penny fiel, als ich entdeckte, dass ich mit Yii :: app () - & gt; request- & gt; userHostAddress über IPv6 verbunden war.
>Warum? Ich erhalte einen Fehler 403, wenn ich versuche, Gii zu benutzen?
Wenn der obige Link nicht hilft, versuchen Sie, die Datei appplication.log im Runtime-Ordner nachzusehen, um zu sehen, was schief läuft.
Ich habe den gleichen Fehler bekommen. Ich habe meine IP mit Yii::app()->request->userHostAddress
überprüft; stellt sich heraus, dass dies eine IPv6-Adresse zurückgibt, die etwas wie dieses ab01::1
aussieht. Dies kann das Verhalten sein, besonders wenn Sie Safari verwenden (unter OS X ... Chrome unter OS X zeigt die normale IP von 127.0.0.1. Komisch seltsames Verhalten von diesen beiden WebKit-Browsern).
Setze einfach Yii::app()->request->userHostAddress
in eine deiner Ansichten und kopiere das Ergebnis von der Ausgabe und füge es in config / main.php ein:
Ich hatte ein sehr ähnliches Problem. Für mich war es, dass mein Benutzerkonto keinen Schreibzugriff auf meinen PHP-Ordner session_save_path hatte. Als ich in Windows 7 dazu geblättert habe, sagte es mir, dass ich eine Erlaubnis brauche und es würde es gewähren, wenn ich OK wähle. Ich tat. Alles wurde repariert.
Berücksichtigen Sie, wo sich Ihr Entwicklungsserver befindet (gleiche Verarbeitung, LAN, WAN) und wie sich Ihre IP-Adresse zum Server ändert.
Wenn Ihr Server auf demselben Computer läuft wie Ihr Client (der Browser), fordern Sie die Seite vom lokalen Host selbst an, daher ist Ihre IP-Adresse 127.0.0.1 und die Standardeinstellungen funktionieren.
>Wenn sich Ihr Server auf einem anderen Computer als in Ihrem lokalen Netzwerk (LAN) befindet, sieht Ihre IP-Adresse normalerweise so aus wie 192.168.1.20 für den Server. Sie können es finden und den Code anpassen.
Wenn sich Ihr Server im Internet (WAN) befindet, haben Sie entweder ein
Nur wenn die allerletzte (nicht vorhersagbare dynamische IP-Adresse) der Fall ist, würde ich diese Antwort mit schmunk , der auch auf das Risiko hinweist.
Die Verwendung von $_SERVER['REMOTE_ADDR']
scheint mir unnötig.
Stellen Sie sicher, dass es keine vorgenerierte Konfiguration am Ende der Konfigurationsdatei gibt. Diese überschreiben, was Sie oben hinzugefügt haben:
%Vor%Sollte (Beispiel, erlaubt jedem):
%Vor%