redhat
Goto Top

Ständige Fehlermeldungen bei IIS 6.0 und PHP-Scripts

Brauche einen kleinen Anstoss wo ich die Fehlersuche beginnen sollte...

Ich habe vor einer Woche einen weiteren WebServer bekommen. Diesmal habe ich mir mal einen Windows 2003 Web-Edition zugelegt. Leider komme ich damit nicht wirklich klar und bin eigentlich in Sachen Windows-Server ein Neuling.

Egal welche PHP-Scripts ich auch (bis jetzt) laufen lassen wollte, ich bekomme immer die selben Meldungen. Ich habe Forum (vBulletin), Webmailer (Horde IMP Webmail Client), Sitebuilder (Sitebuilder FX) und CMS (Contenido) versucht. Keines hat funktioniert.


Warning: main(C:\Inetpub\vhosts\xxxxxx\httpdocs\webmail/../lib/Test.php): failed to open stream: No such file or directory in C:\Inetpub\vhosts\xxxxxx\httpdocs\webmail\Index.php on line 19

Fatal error: main(): Failed opening required 'C:\Inetpub\vhosts\xxxxxx\httpdocs\webmail/../lib/Test.php' (include_path='.;./includes;./pear') in C:\Inetpub\vhosts\xxxxxx\httpdocs\webmail\Index.php on line 19  

Kann mir jemand vielleicht einen kleinen Tipp geben wo ich mit der Fehlersuche anfangen soll? Ich bin über alles dankbar ;o)


Windows 2003 Web-Edition
Microsoft IIS 6.0
Plesk 7.02
Microsoft ASP 6.0.3790.0
Microsoft ASP.NET 1.1.4322.0
SSI 6.0.3790.0
perl v5.8.3 built for MSWin32-x86-multi-thread
php 4.3.6 (cgi-fcgi) (built: Apr 14 2004 17:21:37)
Microsoft FrontPage 5.0.2.5012
mysql 4.0.20a-nt
Mail Enable 1.73
JDK 1.4
Tomcat 5.0.19
awstats 6.0 (build 1.1)
Plesk DNS Server 9.2.3

Content-Key: 10143

Url: https://administrator.de/contentid/10143

Printed on: April 24, 2024 at 15:04 o'clock

Member: niki
niki May 01, 2005 at 08:41:16 (UTC)
Goto Top
Hallo,

1.
im iis6 muss unter appliationpools, die php.exe oder php-cgi.exe oder die php??isapi.dll eingetragen und zugelassen werden. je nachdem, wie du php nutzen willst NUR EINE der o.g. anwendungen eintragen, das ist grundbedingung. Bei deiner Version sollte es meines Wissens nach die php.exe sein. Ich selbst habe php5 unter Windows manuell installiert und über die phpIS.dll laufen, was angeblich erheblich schneller sein soll.

2.
wenn du auf allen kundenwebs php zulassen willst, musst du noch vorgeben, welcher interpreter beim aufruf einer php seite geladen wird.
a) für alle kundenwebs klickts du RECHTS im iis auf websites, eigenschaften, basisverzeichnis, konfiguration, anwendungszuordnung, hinzufügen
-dann gibtst du den pfad zu der php.exe oder....s.o. ein
-als dateiendung dann .php
-als verben würde ich vorschlagen
begrenzt auf : GET, HEAD, POST (händisch eingeben)
-überprüfen ob datei existiert kann deaktiviert werden

wenn du noch dateien mit der endung .php3 .php4 etc. zulassen willst muss 2.) dafür wiederholt werden.

b) wenn du lediglich bestimmt kundenwebs mit php ausstatten willst, muss du die unter a) beschriebene prozedur nicht über "websites" rechtsklick machen sondern für jedes betreffende "kundenweb" rechtsklick. Wenn du es über a) machst, werden die einstellungen für alle bestehenden und künftigen webs vererbt.

3.) die php.ini muss angepasst werden, das aber in erster linie aus sicherheitsgründen, normalerweise muss php so schon laufen bis auf (4.)
-details dazu würden hier zu weit führen
eines dazu: der Wert
register_globals
sollte meines wissens auf off stehen, also
register_globals = off


4. wenn php dann noch nicht läuft, prüfe, ob das Verzeichnis Drive://php Leserechte für den Netzwerkdienst hat, ggf. Rechte setzen bzw. diesen User hinzufügen. Falls immer noch nicht, den IUSR_SERVERNAME hinzufügen mit Leserechten.

Je nach Konfiguration ist schon die Gruppe "Benutzer" mit Leserechten ausgestattet. Ich würde dies aber auf den IUSR beschränken, d.h. Gruppe Benutzer für diese Verzeichnis entfernen

5. ein verzeichnis uploadtemp und sessiondata unterhalb vom PHPverzeichnis anlegen und dem IUSR Änderungsrechte geben, das ist für temporäre Uploaddateien und Sessiondaten nötig aus der Sitzung.

Wenn du Uploads per Brower zulassen willst in der php.ini folgendes Anpassen:

unter [Upload]

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = Laufwerksname:\PHP\uploadtemp


unter [Session]
session.save_path = Laufwerksname:\PHP\sessiondata ; argument passed to save_handler


6. Notfalls mal neustarten, oder
Start ausführen, iisreset.
Clientbrowser schliessen und neu öffnen.
Jetzt sollte es funktionieren.

Gruß Niki
Member: RedHAT
RedHAT May 03, 2005 at 13:01:44 (UTC)
Goto Top
Vielen Dank!

Dachte nicht, dass ich das so ausführlich bekommen würde. Auf jeden Fall hat es funktioniert. Echt klasse!