• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

apache2 und cgi-bin

Hallo!
Ich stehe vor dem Problem, dass ich auf einem Webserver nicht nur ein cgi-bin Verzeichnis im Dokument-Root des Servers benötige, sondern auch noch in einzelnen Verzeichnissen gerne eines zur Verfügung hätte.

Also nicht nur www.name.de/cgi-bin/ sondern auch www.name.de/verzeichnis/cgi-bin

So weit so einfach könnte man denken, aber das scheint es nicht zu sein.

In der httpd.conf steht in den Einträgen des entsprechenden Virtual
Host in der Zeile ScriptAlias standardmäßig:

> /cgi-bin/ /home/x/domainname/public_html/cgi-bin/

Ergänze ich das ganze um einen weiteren Eintrag in Form von:

> /cgi-bin/ /home/x/domainname/public_html/cgi-bin/ /home/x/domainname/public_html/verzeichnisname/cgi-bin/

oder

> /cgi-bin/ /home/x/domainname/public_html/cgi-bin/ /home/x/domainname/public_html/*/cgi-bin/

meckert er beim Aufruf von /etc/init.d/apache configtest einen Syntax error an und fügt ergänzend hinzu: ScriptAlias takes two arguments, a fakename and a realname"

Deshalb meine Frage:
Wie kann ich dem Apache beibringen, das er neben dem eigentlichen cgi-bin im Root, auch in einem anderen Verzeichnis ebenfalls ein cgi-binVerzeichnis akzeptiert und die dort abgelegten Scripte schlußendlich auch ausführt?

System:
Strato Root-Server auf Suse9.x mit Apache2

Danke im Voraus,

epsdps
 

admine

Ultimate Guru
Willst du mehrere solcher Aliase anlegen (mehrere Script-Verzeichnisse), müssen sie jeweils andere Aliasnamen tragen.
 
admine schrieb:
Willst du mehrere solcher Aliase anlegen (mehrere Script-Verzeichnisse), müssen sie jeweils andere Aliasnamen tragen.

Ja, dass habe ich vor. Auf dem damaligen Server war das einfach so möglich. Wenn ich jetzt alles umschreiben müsstewäre das ziemlich nervig.

Ich verstehe allerdings nicht wie du das meinst mit den anderen Aliasnamen meinst.

Vielleicht kannst du mir besser verdeutlichen was du meinst, wenn du den entsprechenden Teil der httpd.conf siehst:

#VHOST medien.de
<VirtualHost *:80>
php_admin_value open_basedir /home/m/medien.de/public_html/:/usr/local/lib/php:/tmp
DocumentRoot /home/m/medien.de/public_html/
ServerName www.medien.de
IndexOptions
DirectoryIndex index.htm index.html index.shtml start.htm start.html start.shtml index.php index.php3
ServerAlias medien.de medien.h12345.serverkompetenz.net *.medien.de
CustomLog "|/usr/local/visas/cronolog/cronolog --symlink=/usr/local/visas/logfiles/medien.de/access_log [...]
SuexecUserGroup medien www
ScriptAlias /cgi-bin/ /home/m/medien.de/public_html/cgi-bin/
</VirtualHost>
#/VHOST

Hoffentlich hast du eine Idee?!

Viele Grüße und Danke im Voraus,

defektes_neuteil
 

admine

Ultimate Guru
Beispiel:
Code:
ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"
ScriptAlias /test/cgi-bin/ "/usr/cgi-bin/"
ScriptAlias /users/hans/cgi-bin/ "/home/hans/cgi-bin/"
Die entsprechenden URLs für die drei verschiedenen Verzeichnisse wären jetzt:
http://www.myhost.mydomain.de/cgi-bin/irgendwas.pl
http://www.myhost.mydomain.de/test/cgi-bin/irgendwas.pl
http://www.myhost.mydomain.de/users/hans/cgi-bin/irgendwas.pl

das Beispiel habe ich hier gefunden:
http://www.linux-praxis.de/linux3/apache.html
 
Hallo!
Sehr geile Sache. Hat wunderbar geklapt. Manchmal liegt das Gute so nahe.
Ich hatte zwar einige Seiten zum Thema gefunden, doch ganz schlau bin ich daraus nicht geworden.

Vielen Dank für dein Bemühen!

defektes_neuteil
 

klausph

Newbie
hai
warum mit scriptalias arbeiten?

z.b. so:
<Directory "/home/*/public_html/pups">
Options +ExecCGI
</Directory>
PerlModule Apache2
AddHandler cgi-script .cgi .pl
mit der obigen lösung kan ich überall nach /pups cgi/pl's reinstopefn.

php's werden überall ausgeführt:


der addhandler ist wohl überflüssig...
aber es gibt noch eine mod_perl.conf, wie ich gerad esehe. da ist defniert. kann überflüssig sein, da die scripte NICHT in EINEM subdir liegen.
<IfModule mod_perl.c>
PerlRequire "/etc/apache2/mod_perl-startup.pl"

ScriptAlias /perl/ "/srv/www/cgi-bin/"
<Location /perl/>
# mod_perl mode
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
</Location>

ScriptAlias /cgi-perl/ "/srv/www/cgi-bin/"
<Location /cgi-perl>
# perl cgi mode
SetHandler perl-script
PerlResponseHandler ModPerl::perlRun
PerlOptions +ParseHeaders
Options +ExecCGI
</Location>


gruß
klaus
 
Oben