Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

IIS 7.5 und moziloCMS 1.11.2

Begonnen von laborix, 21. November 2009, 20:43:24

« vorheriges - nächstes »

laborix

Hallo,

mal wieder ein IIS Problem, was ich irgendwie diesmal nicht mit Microsoft gelöst bekomme. Das CMS läuft unter IIS 7.5, aber sobald ich mich versuche anzumelden, springt die Anmeldung immer wieder in den Login Bildschirm mit "logout=true" zurück.

Wie hier http://forum.mozilo.de/viewtopic.php?f=8&t=332 beschrieben, konnte ich unter IIS 7.0 ein Patch einspielen, der die "REQUEST_URI server variable" fixed. Mit IIS 7.5 geht das nicht, es gibt keinen Patch (zumindest im Augenblick  :roll: ).

Was wird beim Login gemacht? Warum läuft moziloCMS fehlerfrei auf IIS 7.5, aber nicht mehr beim Admin Unterverzeichnis? Ok, IIS 7.5 ist sehr modern, eventuell zu neu, aber es interessiert mich, warum der Login nicht funktionert.

laborix

#1
Da ein "Edit" nicht mehr geht, hier noch eine Info:

Nach dem Einfügen aller Einträge aus einem Apache-gestützten moziloCMS, wurden folgende Tests durchgeführt.

Suche nach Begriffen geht, Links funktionieren, Drucken geht und wie es aussieht die normale Betriebsfunktionen. Leider geht das Einloggen immer noch nicht und ich habe keine Ahnung warum. Nochamls die Frage, werden beim Login irgendwelche besonderen URL-Umleitungen oder Servernamen abgefragt? Was ist hier anders?

azett

#2
Zitat von: "laborix"sobald ich mich versuche anzumelden, springt die Anmeldung immer wieder in den Login Bildschirm mit "logout=true" zurück.
Klingt für mich nach einem Problem mit der $_SESSION - laß uns das mal Schritt für Schritt durchdebuggen: Erweitere mal bitte deine admin/login.php (ab Zeile 60) um die markierten zwei Zeilen:
// Anmeldung erfolgreich
if (isset($_SESSION['login_okay']) and $_SESSION['login_okay']) {
// Counter für falsche Logins innerhalb der Sperrzeit zurücksetzen
$logindataconf->set("falselogincounttemp", 0);
print_r($_SESSION); // DIE HIER...
die(); // UND DIE
// ...ab in den Admin!
header("location:index.php");
}

Was erscheint als Ausgabe, wenn du dich nun mit admin/install anmelden willst?

laborix

#3
Zitat von: "azett"Was erscheint als Ausgabe, wenn du dich nun mit admin/install anmelden willst?
Gerne...
Array( [username] => admin [login_okay] => 1 )
Hier noch der LOG-Auszug:

2009-11-23 12:58:18 ::1 GET /cms/admin/ - 80 - ... 302 0 0 15
2009-11-23 12:58:18 ::1 GET /cms/admin/login.php logout=true 80 - ... 200 0 0 62
2009-11-23 12:58:18 ::1 GET /cms/admin/adminstyle.css - 80 - ... 200 0 0 62
2009-11-23 12:58:18 ::1 GET /cms/admin/gfx/login.gif - 80 - ... 200 0 0 62
2009-11-23 12:58:18 ::1 GET /cms/admin/mozilo.jpg - 80 - ... 404 0 2 0
2009-11-23 12:58:18 ::1 GET /favicon.ico - 80 - ... 404 0 2 0
2009-11-23 12:58:24 ::1 POST /cms/admin/login.php - 80 - ... 302 0 0 46
2009-11-23 12:58:24 ::1 GET /cms/admin/index.php - 80 - ... 302 0 0 17
2009-11-23 12:58:24 ::1 GET /cms/admin/login.php logout=true 80 - ... 200 0 0 50
2009-11-23 12:58:24 ::1 GET /cms/admin/mozilo.jpg - 80 - ... 404 0 2 0
2009-11-23 12:58:24 ::1 GET /favicon.ico - 80 - ... 404 0 2 0

azett

#4
Das selbe nochmal in der admin/index.php ab Zeile 29 bitte: // Login überprüfen
 session_start();
 print_r($_SESSION);  // HINZUFÜGEN
 die(); // HINZUFÜGEN
 if (!isset($_SESSION['login_okay']) || !$_SESSION['login_okay']) {
    header("location:login.php?logout=true");
    die("");
 }
Was ist dort die Ausgabe?

(Hinweis: Du darfst die Änderungen erst speichern, wenn du die Login-Maske schon siehst - sonst kommst du gar nicht erst bis dahin ;) Also: Admin aufrufen, Änderungen in der admin/index.php machen, Login versuchen.)

laborix

#5
Zitat von: "azett"Was ist dort die Ausgabe?
Ausgabe:
Array()

azett

#6
Hm, das hatte ich vermutet...die login.php setzt den Usernamen und das "login_okay"-Flag in die globale Session...Array( [username] => admin [login_okay] => 1 )...und leitet dann auf die index.php weiter, wo genau diese Werte aus der Session wieder abgefragt werden.
Auf deinem Server hat die Session diese Werte aber nicht mehr, wenn sie von der index.php abgefragt wird - was darin resultiert, daß das CMS "denkt", du bist nicht korrekt angemeldet und dich zurück zum Anmeldeformular schickt. Ich kenne leider den IIS nicht, um Aussagen über seine Sessionverwaltung treffen zu können :(

stefanbe

#7
ZitatArray( [username] => admin [login_okay] => 1 )
Meine mich erinern zu können das irgendwo ein $_SESSION['PHPSESSID'] = true; gemacht wird das könte dazu füren das der IE keine PHPSESSID bekomt.

gruss stefanbe

laborix

#8
Zitat von: "azett"Ich kenne leider den IIS nicht, ...
Neue Infos von der IIS 7.5 Front :D Es sind nicht die Sessions und nicht PHP 5.2.11 und auch nicht IIS 7.5.

Es sieht schwer danach aus, dass das ganze Problem interne Einstellungen sind. Nachdem ich erneut einen IIS 7.5 aufgesetzt habe, ging ich nicht den Weg der manuellen PHP Installation, sondern mit der vorgefertigten Windows Installer Version von PHP.NET. Jetzt kann ich mich in moziloCMS 1.11.2 anmelden, Kategorien und Inhaltsseiten anlegen.

Mit etwas Liebe werde ich die Unterschiede zwischen manueller Installation aus dem IIS.NET und der PHP Installer Variante von PHP.Net herausfinden.

Bestimmt ein Fehler meinerseits, Danke für die Geduld mit mir... :oops:

azett

#9
Kein Problem :) Wenn du was herausfindest, laß es uns hier wissen - man lernt ja nie aus ;)

laborix

#10
Zitat von: "azett"Kein Problem :)
Danke

Erste Hinweise sind PHP Pfade im Session Manager, das "open_basedir" in der php.ini und das von dir angesprochene Sessionshandling. Ich werde am Wochenende nochmals einen IIS aufsetzen und versuchen die Ursachen zu finden.

laborix

#11
Zitat von: "azett"Wenn du was herausfindest, laß es uns hier wissen - man lernt ja nie aus ;)
Warum springt das moziloCMS 1.11.2 beim IIS 7.5 mit PHP 5.2.11 immer wieder in den "logout=true" Modus (alle Browser, nicht nur der IE)? Das Problem sind die Benutzerrechte auf dem IIS-Server beim Erstellen einer temporären Sessiondatei.

Hinweis:
Für alle drei Fälle sind für den IIS_Server Rechte auf "Lesen und Auführen, Ordnerinhalte anzeigen, Lesen" und für die Gruppe IUSR das Recht "Ändern" auf folgende Verzeichnisse im moziloCMS Verzeichnis gesetzt:
admin, conf, formular, galerien, kategorien


Fall eins:
php.ini = session.save_path = "..phpsessions"
IIS_Server Rechte per default keine gesetzt
moziloCMS funktioniert, Login Aufruf bringt HTTP-Error 500

Fall zwei:
php.ini = session.save_path = "..phpsessions"
IIS_Server Rechte auf "Ändern" gesetzt
moziloCMS funktioniert, Login kann aufgerufen werden, "logout=true"

Fall drei:
php.ini = session.save_path = "..phpsessions"
IIS_Server Rechte auf "Lesen/..." zurückgesetzt, "Ändern" wird nicht benötigt.
IUSR Gruppe (Anonymous IIS User) hinzugefügt und auf Ändern gesetzt
moziloCMS funktioniert, Login funktioniert, Anlegen Inhalt/Kategorie funktioniert

Die "Path"/"PHPRC" Variablen sind nicht notwendig unter IIS 7.5, auch der "open_basedir" Eintrag in der php.ini spielt für die Login-Authentifizierung keine Rolle. Das Loginproblem beruht nur auf Rechte für die Gruppe "IUSR".

Hoffe das war irgendwie verständlich  :oops:

azett

#12
Okay, gut zu wissen. Sollte einer ähnliche Probleme unter IIS haben, hilft dieser Thread sicher weiter - danke fürs Posten der Lösung! :)