php auf IIS Server

Windows 1 über 9x bis hin zu Vista, 7, 8, 10 und 11 sowie zukünftige Systeme
Unix / Linux in allen Derivaten und Varianten
Antworten
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

php auf IIS Server

Beitrag von Indextrader »

Hallo ihr Lieben

Ich bin gerade dabei php auf einen Windows 2003 dedicated Server zu installieren, komme da aber nicht weiter. Wie immer hört sich alles ganz einfach an, klappt aber nicht.

PHP mit Windows Installer auf dem Server brav unter c:/php installiert. Im IIS die php Erweiterung erlaubt, ein Script in Inetpub/wwwroot geladen aber beim Aufruf kommt

The specified CGI application misbehaved by not returning a complete set of HTTP headers.

Laut readme.txt sollte das doch eigentlich ganz einfach sein.

Mit dem Apache im Xampp Paket klappt alles ganz locker, da aber schon der IIS den Port 80 nutzt, musste ich hier einen anderen Port wählen (hab 81 genommen).

Aufruf des Scriptes klappt dann einwandfrei, aber ich kann das Script nicht so legen, das es mit der IP direkt aufgerufen wird, lege ich die IP auf index.html alles kein Problem aber index.php bis jetzt keine Chance, liegt wohl dran das ich den pot 80 mit dem Apache nicht nutzen kann oder? Deswegen habe ich dann Xampp wieder runtergschmissen und kämpfe nun mit IIS

Ergebnis soll sein, das ich aktuell mit Aufruf der IP sofort auf der index.php lande und dann im nächsten Schritt die Domain auf die IP lege.

Danke
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, Standard-Port für HTTP unter jedem Webserver (egal ob Apache, IIS oder welcher auch immer) ist Port 80.
Alles andere sind selbst definierte Ports, die ggf. mit anderen Protokollen kollidieren.
Du solltest also besser auf 80 bleiben.
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
Hast Du den IIS auf für PHP-Scripte eingestellt? Also nicht nur für den Interpreter selber?
Ich kenne mich zwar nicht mit dem IIS aus, aber unter dem Apache muss auch neben dem PHP-Modul dem Webserver auch noch die Arten der Dateien mitgeteilt werden, die mit PHP ausgeführt werden sollen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Öhm, Standard-Port für HTTP unter jedem Webserver (egal ob Apache, IIS oder welcher auch immer) ist Port 80.
Alles andere sind selbst definierte Ports, die ggf. mit anderen Protokollen kollidieren.
Du solltest also besser auf 80 bleiben.
Das Problem ist das ich den IIS und den Apache nicht auf dem selben Port laufen lassen kann, somit habe ich den Apache auf 81 gelegt, mit dem Teil kenne ich mich einigermassen aus.

Den IIS aber kenne ich noch gar nicht, das blöde Ding brauche ich aber um überhaupt mit dem Windows 2003 Server aus dem Netz erreichbar zu sein, um Webroots zu bilden und um Domainen entsprechend einrichten zu können, zumindest habe ich das mal so verstanden.

Also habe ich dann irgendwann den Apach wieder runtergehauen und knabbere nun am IIS
Hast Du den IIS auf für PHP-Scripte eingestellt? Also nicht nur für den Interpreter selber?
Ich kenne mich zwar nicht mit dem IIS aus, aber unter dem Apache muss auch neben dem PHP-Modul dem Webserver auch noch die Arten der Dateien mitgeteilt werden, die mit PHP ausgeführt werden sollen...
Im IIS kannst du Extensions hinzufügen und dann erlauben, hier habe ich Php hinzugefügt und freigegeben.

Ich habe mal Php Info erstellt und hochgeladen, php ist installiert das muss an etwas anderem liegen
Zuletzt geändert von Indextrader am Sa 10.Feb, 2007 19:06, insgesamt 1-mal geändert.
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Eventuell findet jemand irgendein Problem anhand der Info PHP

Code: Alles auswählen

http://209.67.221.162/info.php
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Zunächst solltest Du mal "safe_mode" auf "on" stellen, sonst hagelts unter Umständen Hackangriffe, denen Du kaum Widerstand bieten kannst.

Und so ganz kann ich Dir jetzt nicht mehr folgen:
Wenn die phpinfo(); funktioniert, warum dann andere Scripte nicht?
Diese Seite wird nur angezeigt, wenn PHP korrekt funktioniert ;)
Und der Apache wäre dann auch überflüssig, da schlicht doppelte Webserver keiner braucht.

BTW: Port 81 könnte auch vom IIS "intern" verwendet werden, daher mal eher hier in die Doku schauen.
Sonst könnten Funktionen blockiert werden, die Du nutzen willst...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Und so ganz kann ich Dir jetzt nicht mehr folgen:
Tja bin seit 4 Uhr heute früh dran, da rede ich sicher schon langsam wirres Zeugs :p
Wenn die phpinfo(); funktioniert, warum dann andere Scripte nicht?
Sag ich doch, das muss an etwas Anderes liegen, werde ich auch noch rausbekommen
Und der Apache wäre dann auch überflüssig,


Ganz klar, hatte ich ja nur aus Bequemlichkeit versucht, da ich ihn kenne

Zunächst solltest Du mal "safe_mode" auf "on" stellen

Wird gemacht :D
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Ich bins wieder

Habe nun mal ein wenig rumgespielt.
Es handelt sich um das Video Script, welches auf einem anderen dedicated Windows Server unter Apache einwandfrei läuft, beim IIS erhalte ich dagegen Script Fehlermeldungen.

Code: Alles auswählen

Notice: Undefined variable: username in c:\Inetpub\wwwroot\adminpanel\password.php on line 13

Notice: Undefined variable: password in c:\Inetpub\wwwroot\adminpanel\password.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at c:\Inetpub\wwwroot\adminpanel\password.php:13) in c:\Inetpub\wwwroot\adminpanel\password.php on line 23
und hier die password.php

Code: Alles auswählen

<?php

  include("admin.config.inc.php");

  if($ADMIN_USE_DATABASE == "YES")

  {

    include("connect.php");



    $passquery = "select * from $ADMIN_USERS_TABLE where username = '$username' AND password = '$password'";

    $passresult = mysql_query($passquery,$db);

    $passtotal = mysql_num_rows($passresult);

    if(!$passtotal)

    {

      header("Location:index.php?1");

    }

    else

    {

      if(isset($UsErOfAdMiN))

      {

        setcookie("UsErOfAdMiN","","0","/");

        $UsErOfAdMiN="";

      }

      setcookie("UsErOfAdMiN",$username,"0","/");

      if(isset($UsErOfAdMiNPaSsWoRd))

      {

        setcookie("UsErOfAdMiNPaSsWoRd","","0","/");

        $UsErOfAdMiNPaSsWoRd="";

      }

      setcookie("UsErOfAdMiNPaSsWoRd",$password,"0","/");

      header("Location:inner.php");

    }

  }

  else

  {

    if($username==$ADMIN_USERNAME && $password==$ADMIN_PASSWORD)

    {

      if(isset($UsErOfAdMiN))

      {

        setcookie("UsErOfAdMiN","","0","/");

        $UsErOfAdMiN="";

      }

      setcookie("UsErOfAdMiN",$username,"0","/");

      if(isset($UsErOfAdMiNPaSsWoRd))

      {

        setcookie("UsErOfAdMiNPaSsWoRd","","0","/");

        $UsErOfAdMiNPaSsWoRd="";

      }

      setcookie("UsErOfAdMiNPaSsWoRd",$password,"0","/");

      header("Location:inner.php");

    }

    else

    {

      header("Location:index.php?1");

    }

  }

?>
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann musst Du mal in der admin.config.inc.php nachschauen, ob $username überhaupt dort definiert ist.
Es scheint jedenfalls eine fehlende Variablendefinition zu geben...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

[quote="oxpus";p="69780"]Dann musst Du mal in der admin.config.inc.php nachschauen, ob $username überhaupt dort definiert ist.
Es scheint jedenfalls eine fehlende Variablendefinition zu geben...[/quote]

Ist das nicht irgendwie unlogisch? Das selbe Script läuft ja unter Apache local sowie hier einwandfrei

Code: Alles auswählen

http://66.197.217.248:81/video/index.php
Ich habe folgendes beim Googlen gefunden:

Unterschiedliche Server benötigen unterschieldiche Header. So braucht der IIS z.B.:

print "HTTP/1.0 200 OK\n";
print "Content-Type: text/html\n\n";

Apache langt ein:
print "Content-type: text/html\n\n";


Muss oder kann ich eventuell irgendwo etwas entsprechend ändern und wenn ja wo?

Man wieso kann das unter dem IIS nicht so einfach sein wie unter dem Apache ¦4
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Man wieso kann das unter dem IIS nicht so einfach sein wie unter dem Apache
Weil der erste kommerziell von einem Großunternehmern, das andere nach Wünschen der User als Open Source erstellt wird ;)

Öhm, Frage ist dabei, welche ersten 5 Zeilen in Deiner overall_header.tpl stehen, die ja immer den Beginn der Seite darstellen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Ich habe nun wieder alles umgeschmissen, da mir die ganze Sache mit dem IIS Server zu undurchsichtig war :D

Da das Script testweise auf 2 Servern unter Apache bereits läuft, war mir die Zeit dann doch zu schade tagelang mit dem IIS rumzukämpfen, obwohl es natürlich immer klasse ist, wenn man es dann gelöst und vorallem verstanden hat.

IIS also wieder runtergeschmissen und den Apache drauf.

Und Schwupp die Wupp nun läuft alles

Video Gallery

1000 Dank für deinen unermüdlichen Einsatz Oxpus, habe in der Zeit wo ich nun hier im Board bin sehr viel durch deine Hilfe gelernt

Alles Liebe
Uwe
Antworten