
Ich arbeite mit einer Apache2/Redhat5.5-Konfiguration. Ich versuche, die Ausführung von Perl-Skripten zu konfigurieren (und zu lernen), was für mich neu ist.
In meiner httpd.conf-Datei habe ich diese Änderungen vorgenommen und/oder diese Einstellungen festgestellt:
DirectoryIndex index.html index.html.var index.cgi index.pl
...
AddHandler cgi-script .cgi .pl
...
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
...
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Ich habe dieses Skript platziert:http://www.seaglass.com/downloads/file_upload.plin das Verzeichnis /var/www/cgi-bin/.
Ich richte meinen Browser dann auf myIpAddress/cgi-bin/file_upload.pl und erhalte die Meldung „Interner Serverfehler … Auf dem Server ist ein interner Fehler oder eine Fehlkonfiguration aufgetreten und er konnte nicht …“
Ich überprüfe dann das Fehlerprotokoll und finde Folgendes:
[Sun Nov 27 19:59:02 2011] [error] [client ***] (2)No such file or directory: exec of '/var/www/cgi-bin/file_upload.pl' failed
[Sun Nov 27 19:59:02 2011] [error] [client ***] Premature end of script headers: file_upload.pl
[Sun Nov 27 19:59:02 2011] [error] [client ***] File does not exist: /var/www/html/favicon.ico
Antwort1
Vorausgesetzt, Sie haben SELinux aktiviert, schalten Sie CGI mit: ein:
setsebool -P httpd_enable_cgi on
Dies setzt voraus, dass das Skript korrekt hochgeladen wurde. Perl-Skripte laufen nicht so gut, wenn sie entweder im DOS-Format gespeichert oder im Binärmodus über FTP hochgeladen werden. Wenn Sie die Datei nicht über FTP (sondern über scp oder sftp) kopiert haben, konvertieren Sie die Datei mit:
dos2unix file_upload.pl
Antwort2
Das klingt für mich so, als ob Sie Perl nicht perl
auf Ihrem Computer installiert haben oder es sich unter einem anderen Pfad befindet als /usr/bin/perl
. Geben Sie es /usr/bin/perl -v
in eine Befehlszeile ein, um zu bestätigen, dass Perl tatsächlich installiert ist.
Es ist auch möglich, dass Ihnen die Ausführungsberechtigung für fehlt /var/www/cgi-bin/file_upload.pl
.