Heim >Backend-Entwicklung >PHP-Tutorial >Warum wirft Anchor CMS 0.8 auf einem CGI-Server den Fehler „Keine Eingabedatei angegeben' aus?

Warum wirft Anchor CMS 0.8 auf einem CGI-Server den Fehler „Keine Eingabedatei angegeben' aus?

Barbara Streisand
Barbara StreisandOriginal
2024-11-10 11:01:02741Durchsuche

Why Does Anchor CMS 0.8 Throw a

Behebung des Fehlers „Keine Eingabedatei angegeben“ in Anchor CMS

Der Fehler „Keine Eingabedatei angegeben“ ist beim Upgrade von Anchor CMS auf aufgetreten Version 0.8 stammt von der PHP-Implementierung auf dem Server, insbesondere in einer CGI-Umgebung.

Um diesen Fehler zu verstehen, ist es so Es ist von entscheidender Bedeutung, zu verstehen, wie Ihr System mit URLs umgeht. Gemäß der bereitgestellten .htaccess-Datei erwartet Ihr CMS, dass die URL als PATH_INFO-Variable übergeben wird. Bei CGI-Implementierungen fehlt jedoch PATH_INFO, was dazu führt, dass PHP beim Versuch, den URI zu übergeben, den oben genannten Fehler zurückgibt.

Lösungen erkunden:

  1. Versuch, das Problem zu beheben:

    • Obwohl möglich, Änderung Es ist unwahrscheinlich, dass PHP-Einstellungen auf Shared-Hosting-Umgebungen wie GoDaddy zulässig sind.
  2. Alternativer Ansatz:

    • System/uri .php basiert auf zwei Arten der URI-Erkennung: PATH_INFO und REQUEST_URI. Da PATH_INFO in unserem Fall problematisch ist, wenden wir uns an REQUEST_URI.
    • Die direkte Übergabe des URI an REQUEST_URI führt jedoch zu einer unzureichenden Analyse durch parse_url() und gibt nur den URL-Pfad zurück.
    • Daher Die einzig gangbare Lösung besteht darin, das CMS zu ändern core.

Überarbeitete .htaccess- und System/uri.php-Änderungen:

System/uri.php ändern:

  • Fügen Sie QUERY_STRING als erstes Element zum Array online hinzu 40.

.htaccess ändern:

  • RewriteRule ändern, um den URI als Abfragezeichenfolge zu übergeben:

    RewriteRule ^(.*)$ index.php?/ [L]

Diese Problemumgehung ermöglicht die Übergabe des URI an index.php als QUERY_STRING und ermöglicht so die URI-Erkennung Mechanismus, um es zu lokalisieren. Es ist jedoch auch erforderlich, geänderte Kerndateien beizubehalten, bis dieses Problem behoben ist.

Erwägen Sie alternative CMS-Optionen:

Wenn sich der oben genannte Ansatz als unzureichend erweist, kann es ratsam sein, dies zu tun Erwägen Sie ein robusteres und zuverlässigeres CMS, bei dem solche Probleme nicht auftreten.

Das obige ist der detaillierte Inhalt vonWarum wirft Anchor CMS 0.8 auf einem CGI-Server den Fehler „Keine Eingabedatei angegeben' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn