Fritz Thomas

27 Jan, 2008

PHP: “No Input File Specified” Error

Posted by: Fritz Thomas In: PHP

Der Fehler tritt unter anderem bei Installationen auf bei denen PHP als CGI oder FastCGI eingerichtet ist. Und zwar dann wenn man mittels mod_rewrite versucht auf eine Datei weiterzuleiten die “nicht existiert”. Bei CGI Installation von PHP bedeutet das folgendes: Wird eine URL folgendermasßen rewritten:

RewriteEngine On
 
RewriteRule ^(.*)$ index.php/$1

Also um zum Beispiel ‘/archive/2007/01′ auf ‘index.php/archive/2007/01′ zu rewriten dann tritt der Fehler auf, weil aus der Sicht von PHP die Datei ‘/index.php/archive/2007/01′ nicht existiert.

Nachtrag

Der Fehler tritt auch dann unter einer CGI Installation auf wenn man in der php.ini die Option doc_root auf eine nicht vorhandenes oder nicht lesbares Verzeichnis gesetzt hat.

Wie kann der Fehler behoben oder umgangen werden?


In solchen Scripts wird die URL dann meist über die $_SERVER['PATH_INFO'] Variable ausgewertet.
Das sollte allerdings vermieden werden, da diese Variable nicht unter allen PHP Umgebungen gleich gesetzt wird, oder gar nicht gesetzt wird. Statt dessen sollte man die angeforderte URL über die $_SERVER['REQUEST_URI'] Variable auslesen. Ändert man die entsprechende Stellen im Script, kann man auch die RewriteRules folgenderma&szlig ändern:

RewriteEngine On
 
RewriteRule ^(.*)$ index.php


Wie Ihr seht wird so nicht die URL an die index.php angehängt sondern bei jedem Request nur die index.php aufgerufen. Die angeforderte URL kann aber aus der $_SERVER['REQUEST_URI'] ausgelesen werden. Ändert man diese Stellen so funktioniert der Request funktioniert und man bekommt keinen “No input file specified” Fehler zurück.

  • Digg
  • del.icio.us
  • DZone
  • MisterWong
  • Reddit
  • Slashdot
  • Technorati
  • Google Bookmarks
  • Facebook
  • Twitter
  • Yahoo! Bookmarks
  • Yigg
  • LinkedIn
  • MySpace
  • PDF
  • RSS

4 Responses to "PHP: “No Input File Specified” Error"

1 | Marco

August 6th, 2009 at 6:35 pm

Avatar

Danke! Hat mir sehr geholfen.

2 | Jochen

December 16th, 2009 at 3:57 pm

Avatar

Der Fehler kann _auch_ auftreten, wenn an den Dateien das Lese-Recht für den Webserver fehlt.

3 | Hartmut

February 17th, 2010 at 11:48 am

Avatar

Genau das Leserecht war bei mir das Problem. Danke.

4 | Ulf Martinshorn

April 10th, 2010 at 10:54 am

Avatar

Genau das hatte ich gesucht! Dank!

Comment Form



Latest Tweets