Thomas Hochstein wrote:
> Hans Bolte schrieb:
>> Ich hatte zwar immer Probleme, wenn ich CGI auf einem Server einschalten
>> wollte, aber so schlimm wie diesmal war es noch nie.
>
> Konmisch. Eigentlich sollte das gerade unter Debian / Ubuntu recht
> einfach funktionieren.
Das ist für mich das erste mal unter Ubuntu. Der Server an sich und
python_mod ließen sich ganz leicht installieren und einrichten, nur eben
CGI/Perl nicht.
>> Ich lerne schon Python, weil python_mod funktioniert.
>
> Das läuft aber doch auch als CGI, oder?
Das weiß ich nicht. Man übergibt die Daten in beiden Fällen mit einem
Fragezeichen abgegrenzt am Ende der URL.
>> Ich habe
>>
>> ScriptAlias /cgi-bin/ /var/www/cgi-bin/
>>
>> in httpd.conf, die übrigens vorher völlig leer war, eingefügt
>
> Natürlich. Unter Debian (und Derivaten wie Ubuntu) steht die
> Konfiguration größtenteils in /etc/apache2/apache2.conf, teilweise in
> ports.conf, conf.d/ und mods-enabled/.
>
> In /etc/apache2/sites-enabled/ wird dann als Default-vhost
> /etc/apache2/sites-available/default ge-symlinkt. Dort steht
> (zumindest unter Debian):
> | ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
> |<Directory "/usr/lib/cgi-bin">
> | AllowOverride None
> | Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
> | Order allow,deny
> | Allow from all
> |</Directory>
>
> Ich würde mein Glück also mal in /usr/lib/cgi-bin/ versuchen.
Da gab es zuerst einen Internal Server Error, da das Skript anscheinend
für den Zweck unvollkommen ist. Aber mit dem folgenden Skript
funktioniert es von dort:
------------------
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
my $Text = "Hallo Welt";
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',
"\n";
print "<html><head><title>Hallo Welt</title></head><body>\n";
print "<h1>$Text</h1>\n";
print "</body></html>\n";
------------------
>> In /var/www/cgi-bin/ habe ich folgende Datei gestellt und als ausführbar
>> markiert:
>>
>> #!/usr/bin/perl -w
>> print "Content-type: text/html\r\n\r\n";
>> print "Hallo\n";
>>
>> Wenn ich sie einfach so in der Konsole aufrufe, funktioniert sie. Wenn
>> ich sie aber über den Webserver aufzurufen versuche, liefert er nur:
>>
>> ----------------
>> Not Found
>>
>> The requested URL /cgi-bin/
test.pl was not found on this server.
>> Apache/2.2.17 (Ubuntu) Server at localhost Port 80
>> ----------------
>
> Und was steht in /var/log/apache2/error.log? Ich würde dort etwas wie
> | File does not exist: ....
> vermuten, und dort sollte dann stehen, wo er die Datei
test.pl sucht.
Bevor ich es nach /usr/lib/cgi-bin/ kopiert hatte:
[Thu Nov 10 12:43:40 2011] [error] [client 127.0.0.1] script not found
or unable to stat: /usr/lib/cgi-bin/
test.pl
>> Ich halte es schon für möglich, daß das, warum auch immer, ein Mittel
>> von Ubuntu ist, um Python zu pushen.
>
> Und ich halte es für möglich, daß Du Dich einmal näher mit den -
> durchaus komfortablen - Mechanismen auseinandersetzen solltest, die
> die von Dir verwendete Distribution (nicht nur) zur Konfiguration des
> Webservers mitliefert. ;)
>
> (Ja, das sieht dann _ganz_ anders aus als ein selbstkompilierter
> Apache und die Doku, die man bei
apache.org nachlesen kann. Dafür
> erlaubt es die bequeme Installation von Webanwendungen pp. und
> weiteren Modulen "einfach so" über den Paketmanager.)
Vielen Dank!
--
Hans
<
http://www.hansbolte.net>