Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CGI unter Ubuntu 11.04 mit Apache2 ?

25 views
Skip to first unread message

Hans Bolte

unread,
Nov 9, 2011, 9:03:00 AM11/9/11
to
Hat schon mal jemand unter Ubuntu 11.04 mit Apache2 CGI zum Laufen bekommen?

Wo bekommt man das 'mod_cgi' her, das hier
<http://httpd.apache.org/docs/trunk/howto/cgi.html> verlangt wird?

"locate mod_cgi" liefert nichts und

"sudo apt-get install mod_cgi" sagt "Paket mod_cgi kann nicht gefunden
werden".

--
Hans
<www.hansbolte.net>

Thomas Hochstein

unread,
Nov 9, 2011, 3:35:34 PM11/9/11
to
Hans Bolte schrieb:

> Hat schon mal jemand unter Ubuntu 11.04 mit Apache2 CGI zum Laufen bekommen?

Wo liegt denn das Problem?

> Wo bekommt man das 'mod_cgi' her, das hier
> <http://httpd.apache.org/docs/trunk/howto/cgi.html> verlangt wird?

Das ist apache2.2-common AFAIS bereits enthalten.

> "locate mod_cgi" liefert nichts und
>
> "sudo apt-get install mod_cgi" sagt "Paket mod_cgi kann nicht gefunden
> werden".

Jo.

Ansonsten tragen die Pakete idR Namen der Form
libapache2-mod-WHATEVER.

Grüße,
-thh

Hans Bolte

unread,
Nov 10, 2011, 1:21:37 AM11/10/11
to
Ach so.

Ich hatte zwar immer Probleme, wenn ich CGI auf einem Server einschalten
wollte, aber so schlimm wie diesmal war es noch nie.

Ich lerne schon Python, weil python_mod funktioniert.


Ich habe

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

in httpd.conf, die übrigens vorher völlig leer war, eingefügt und
natürlich das Verzeichnis /var/www/cgi-bin/ erstellt und den Server neu
gestartet.

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
----------------

Ich halte es schon für möglich, daß das, warum auch immer, ein Mittel
von Ubuntu ist, um Python zu pushen.

--
Hans
<http://www.hansbolte.net>

Hans Bolte

unread,
Nov 10, 2011, 3:28:26 AM11/10/11
to
Hans Bolte wrote:
> Thomas Hochstein wrote:
>> Hans Bolte schrieb:

>>> Hat schon mal jemand unter Ubuntu 11.04 mit Apache2 CGI zum Laufen
>>> bekommen?
>>
>> Wo liegt denn das Problem?
>>
>>> Wo bekommt man das 'mod_cgi' her, das hier
>>> <http://httpd.apache.org/docs/trunk/howto/cgi.html> verlangt wird?
>>
>> Das ist apache2.2-common AFAIS bereits enthalten.
>>
>>> "locate mod_cgi" liefert nichts und
>>>
>>> "sudo apt-get install mod_cgi" sagt "Paket mod_cgi kann nicht gefunden
>>> werden".
>>
>> Jo.
>>
>> Ansonsten tragen die Pakete idR Namen der Form
>> libapache2-mod-WHATEVER.
>
> Ach so.
>
> Ich hatte zwar immer Probleme, wenn ich CGI auf einem Server einschalten
> wollte, aber so schlimm wie diesmal war es noch nie.
>
> Ich lerne schon Python, weil python_mod funktioniert.

Und die Lösung ist da auch schon absehbar. Ich werde wahrscheinlich in
jedem Fall bei Python bleiben.

Thomas Hochstein

unread,
Nov 10, 2011, 2:16:49 AM11/10/11
to
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.

> Ich lerne schon Python, weil python_mod funktioniert.

Das l�uft aber doch auch als CGI, oder?

> 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.

> 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.

> 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.)

Gr��e,
-thh

Hans Bolte

unread,
Nov 10, 2011, 6:56:31 AM11/10/11
to
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>

0 new messages