CGI-Skript, Zugriff verweigert kann nicht ausgeführt werden.

May 2

CGI-Skript, Zugriff verweigert kann nicht ausgeführt werden.

Manchmal das CGI oder Common Gateway Interface Skript nicht funktioniert wie vorgesehen und produziert die rätselhafte und kryptische Fehlermeldung: "Erlaubnis verweigert." Es gibt viele Gründe, warum ein Webserver verweigert wird ein CGI-Skript ausführen. Als frustrierend, wie diese Fehler sein können, sind sie manchmal ganz einfach zu beheben oder zu verhindern.

Lese-/ Schreibzugriff Skriptberechtigungen

Alle Dateien und Verzeichnisse auf Windows-, UNIX- und Linux-Web-Servern haben Berechtigungssatz Attribute, die bestimmen, wer auf die Dateien zugreifen kann und was sie mit ihnen tun können. Wenn ein CGI-Skript oder das Skript sich im befindet Verzeichnis keinen Benutzer Leseberechtigung, der Web-Server wird das Skript nicht ausgeführt und möglicherweise angezeigt eine Warnung wie "unbekannt: Fehler beim open Stream: Permission denied." Dies kann behoben werden, indem Sie die Datei Leseberechtigung für alle Benutzer erteilen. Sie können den Lese-/ Schreibzugriff-Status Ihres Skripts, die mithilfe der File Transfer Protocol-Anwendung, mit dem Befehl Chmod auf Unix / Linux System oder Fenster den Befehl "Attrib" ändern.

CGI-Skript nicht ausführbar

Ein CGI-Skript kann die richtigen Benutzer Zugriffsberechtigung haben aber noch nicht ausgeführt, wenn das Skript Ausführungsberechtigung nicht hat. Mit Ihrem FTP-Anwendung können Sie Ihr Skript ausführbar machen. Linux und Unix-Anwender können mit dem Befehl Chmod das Execute-Bit gesetzt. Windows-Server erfordert, dass die Ordner mit Skripts ausgeführt haben oder Skript-Berechtigung. Darüber hinaus sollten Sie die richtige Datei-Erweiterungen verwenden, damit der Server weiß, dass es einen Dolmetscher zu rufen Sie das Skript ausführen aufrufen muss.

Web-Server-Konfiguration

Wenn Ihr Webserver keinen Anweisungen darüber, wie ein Python, Ruby oder Perl-CGI-Skript zu behandeln, wenn diese auftreten, erhalten Sie einen "Zugriff verweigert"-Fehler. Um das Skript auszuführen, muss der Web-Server wissen, welche Sprache das Skript, geschrieben ist wo der Interpreter auf dem Server befindet und wie Sie es nennen. Beispielsweise muss der Apache-Webserver den Optionssatz "ExecCGI" und das Mime "Anwendung/X-Httpd-Cgi Cgi" in der Konfigurationsdatei "httpd.conf" oder in eine ".htaccess" Datei haben. Wenn Ihr CGI-Script-Sprache nicht Windows Internetinformationsdienste CGI Standardzuordnung gehört, können Sie es mit dem IIS-Manager-Verwaltungsprogramm hinzufügen.

Prävention

Sie können sicherstellen, dass Ihr CGI-Skript funktioniert wie es sollte, indem Sie auf einem lokalen System testen, bevor Sie es auf Ihren Produktionswebserver hochladen. Wenn Sie das gleiche Betriebssystem wie Ihr Webserver mit entwickeln, werden die Dateiberechtigungen auf beiden Systemen identisch sein. Wenn Sie den entsprechenden Interpreter installiert haben, können Sie Ihr Skript an der Eingabeaufforderung des Betriebssystems testen. Wenn Ihr CGI auf Ihrem Testsystem funktioniert, sollte es auch Ihre Produktions-System funktionieren.