cgi-bin als Hauptverzeichnis

Apache, Lighttpd, nginx, Cherokee
bruno
Posts: 26
Joined: 2006-12-12 09:30

cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-18 23:40

Hi,

ich würde gerne beim Aufruf meiner Domain gleich im cgi-bin Verzeichnis landen ohne es in der url anzugeigen. Beispiel normal:
http://www.meinedomain.tld/cgi-bin/home.pl
möchte es aber so:
http://www.meinedomain.tld/home.pl

was muß ich dafür ändern das das cgi-bin sozusagen Hauptverzeichnis wird?

Gruß Bruno

fireandrescue
Posts: 17
Joined: 2006-12-18 23:11

Re: cgi-bin als Hauptverzeichnis

Post by fireandrescue » 2006-12-18 23:46

ich glaube in der apache2.conf den DocumentRoot ändern zum CGI verzeichniss.

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-18 23:59

Danke für die schnelle Antwort. Ich habe einen neuen 1&1 Rootserver und bin noch nicht so firm... unter etc/apache2 kann ich die nicht finden.

Anonymous

Re: cgi-bin als Hauptverzeichnis

Post by Anonymous » 2006-12-19 09:29

Wenn Du Debian hast, dann ist es unter /etc/apache2/apache2.conf

Aber wenn Du Debian hast, dann solltest du das besser in /etc/apache2/sites-enabled/000-default einstellen. Dort der DocumentRoot einfach aufs cgi-bin setzen. In diesem File wird dann auch definiert das der cgi-bin Ordner CGI Scripts ausführen kann und nicht einsehbar ist per default.

Hoffe das hilft dir weiter so.

Gruss

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 09:38

Die einfachste Variante ist Perl im Rootverzeichnis zuzulassen.

Code: Select all

Options ExecCGI 
Wird normal aus Sicherheitsgründen(Perl geht mal nicht und die Welt sieht die Sourcen, getrickse...) nicht gemacht. Anstatt dessen wird ein scriptalias gesetzt.

Code: Select all

ScriptAlias /cgi-bin/ /Pfad zu den CGI/
Deswegen ist das in /cgi-bin, was dann im Dateisystem irgendwo liegt.

Dann kannst Du redirects der .pl oder wie auch immer die benannt sind, mit modrewrite machen. Schon hast du, was du wolltest. Das sind meistens gar nicht so viele PL-Dateien, die redirected werden müssen(Du kannst auch .pl allgemein umleiten), der Rest(die meistens besonders schutzbedürftig sind) wird dann per include vom Perl selber reingeholt. Zudem hast du oft Get-Argumente, die du evtl im Aufruf verstecken möchtest - dann brauchst Du rewrite sowieso.
Das ist ein start für mod_rewrite:
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
Achja und das wird alles in der VHOST Konfiguration gemacht(eigentlich klar, daß ein Vhost normal nicht die selben Seiten zeigen soll, wie ein Anderer)
Pfad bei debian:

Code: Select all

/etc/apache2/sites-enabled/xxx
(... und nach Änderungen Apache anhupen

Code: Select all

killall -HUP apache2
)

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-19 10:21

Hi,

Danke für die schnellen Antworten :) jetzt bin ich aber ein wenig verunsichert was die beste Lösung ist.... ich habe SUSE 9.3 mit Plesk 8.0 (64 bit). Das mit dem ScriptAlias scheint doch die einfachste Lösung zu sein, wo muß ich das einstellen?

Gruß Bruno

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 10:49

ich glaube in der apache2.conf den DocumentRoot ändern zum CGI verzeichniss.
Das ist das selbe wie ExecCGI im Rootverzeichnis(=DocumentRoot) zu setzen. Das CGI-Verzeichnis hat natürlich die Option gesetzt und wenn Du das DocumentRoot darauf legst, ist die Option auch für das Rootverzeichnis gesetzt.

Normal ist es so, daß du sehr genau festlegen willst, wo deine Documentroot ist und CGI zulassen und nicht das default-cgi Verzeichnis, das in /usr/lib/cgi-bin liegt zu DocumentRoot machen willst.

Wenn du in die Apache Konfiguration blicks, wirst du feststellen, daß da kein Verzeichnis festgelegt ist. Mit Apache 1.x war Defaulthost noch in der Apacheconf global und VHosts konnten zusätzlich dazu festgelegt werden(Bitte über Details hinwegsehen - ist ein Thema für sich ...) mit Version 2 des Apache bricht das ganze und VHosts sind das übliche(wie gesagt als grober Überblick zum verstehen ohne auf Details einzugehen). Der erste VHost wird zum default für den Apache. Deswegen ist auch, wenn du nur einen Host hast, Vhosts die Stelle, wo du fündig wirst(Einheitlichkeit macht Sinn - ein weiterer Host wird konfiguriert, wie es der Erste wurde...).

Sicherheitsaspekt habe ich genannt. Kann ich Dir nicht mehr raten.
Da mal aus erster Hand:
http://httpd.apache.org/docs/2.0/howto/cgi.html
mit dem ScriptAlias scheint doch die einfachste Lösung zu sein, wo muß ich das einstellen?
das ist bei Dir eingestellt, deswegen geht perl nach /cgi-bin was normal(defaults) tatsächlich das Verzeichnis /usr/lib/cgi-bin am Rechner ist.

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-19 11:20

Hi,

ich habe unter /etc/apache2/ keine apache2.conf oder habe ich das jetzt falsch verstanden?

Gruß Bruno

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 11:26

Heißt nur: Du hast kein debian oder keinen Apache2. Was liegen unter(übliche Verdächtige):
/etc/apache
oder
/etc/apache2
oder
/etc/httpd
für Dateien bzw Verzeichnisse rum?

Oder poste mal

Code: Select all

apache2ctl -V | grep SERVER_CONFIG_FILE

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-19 11:33

Hi,

ups hab Deinen letzten Hinweis nicht gesehen...sorry

Ergebnis der Abfrage war:/etc/apache2/httpd.conf

da haben wir es ja :) Was muß ich da jetzt ändern?
Last edited by bruno on 2006-12-19 11:36, edited 1 time in total.

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 11:35

Code: Select all

cd vhosts.d
ls 
Hinweis war nur eine Abkürzung ;) .
Was muß ich da jetzt ändern?
wahrscheinlich nichts, sondern in vhost.d
aber das sehen wir gleich.
(mein Tipp auf die Distribution: SuSE?)

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-19 11:41

darin ist vhost-ssl.template vhost.template

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 11:49

bruno wrote:darin ist vhost-ssl.template vhost.template
Ok. dann wahrscheinlich doch die httpd.conf. Sieht aus, wie bei alten SuSE Distributionen ;).
Sorry - Verdacht die template wird nicht gelesen und die schieben das doch ind die Konfiguration(wo es nicht hingehört.
Müssen wir doch in der httpd.conf schauen, was die machen.
Schau ob ziemlich am ende der Datei(httpd.conf) eine Zeile

Code: Select all

Include /etc/apache2/vhost.d/
ist.
Und checke, ob davor schon irgendwas mit VirtualHost steht. Das interessiert noch. Auch "NameVirtualHost".

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-19 11:54

ok mom...

zum Schluß steht:

Include /etc/apache2/vhosts.d/*.conf


# Note: instead of adding your own configuration here, consider
# adding it in your own file (/etc/apache2/httpd.conf.local)
# putting its name into APACHE_CONF_INCLUDE_FILES in
# /etc/sysconfig/apache2 -- this will make system updates
# easier :)
AddOutputFilter INCLUDES .shtml
AddType text/html .shtml

mit VirtualHost kann ich nichts finden...

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 12:15

Das ist eine typische 1.3 Konfiguration, die Du da hast...
Ok. Was ich oben gesagt habe war gelogen - nein, natürlich nicht. Der Apache 2.0 kann auch kompatibel 1.3 betrieben werden.... Ohne Virtual Hosts und der Der Directory Sektion irgendwo in der httpd.conf. Sowie Du einen Vhost anlegst, sollte das ignoriert werden.
Also legen wir einen an(Sonst mußt Du in der httpd.conf nach der <Directory> Section suchen)

Code: Select all

cp /etc/apache2/vhosts.d/vhost.template /etc/apache2/vhosts.d/0host.conf
Dann zeige mal, was die für ein template da haben. Die entstandene 0host.conf (Servernamen und Verzeichnisse kannst Du natürlich Pseudonymisieren, sind aber Defaults, also in der Welt sowieso bekannt) - da werden wir wahrscheinlich ein paar Kleinigkeiten ändern müssen(Servername den richtigen Setzen, DocumentRoot richtig setzen....).


[ ich versuche um das posten der ganzen httpd.conf rumzukommen ]
Last edited by lucki2 on 2006-12-19 12:20, edited 1 time in total.

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-19 12:19

nur wird es doch noch komplizierter als ich gedacht hab... :oops:
lucki2 wrote:(Sonst mußt Du in der httpd.conf nach der <Directory> Section suchen)
steht so drin:

# forbid access to the entire filesystem by default
<Directory />
Options None
AllowOverride All
Order deny,allow
Deny from all
</Directory>

# use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<Files ~ "^.ht">
Order allow,deny
Deny from all
</Files>

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 12:22

Noch eine andere. Die von der Documentroot. Kopieren ist die Alternative.

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-19 12:25

lucki2 wrote:Noch eine andere. Die von der Documentroot. Kopieren ist die Alternative.
kann ich nichts finden.... hier mal komplett:

Code: Select all

#
# /etc/apache2/httpd.conf 
#

#--------------------------schnipp--------------

Last edited by bruno on 2006-12-19 12:32, edited 1 time in total.

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 12:28

Suchen kann ich schlecht für Dich.
Also zwei Möglichkeiten.
a) httpd.conf posten(evt auf ein clipboard) - dann kann ich suchen, helfen
b) Kopiererei von oben und das entstehende viel kleinere Resultat posten.

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 12:30

Include /etc/apache2/default-server.conf
Die brauchen wir dann...
und das ist eine SuSE.

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-19 12:34

lucki2 wrote:
Include /etc/apache2/default-server.conf
Die brauchen wir dann...
und das ist eine SuSE.
ahhh...wir nähern uns :)

Code: Select all

#
# Global configuration that will be applicable for all virtual hosts, unless
# deleted here, or overriden elswhere.
# -------schnipp------------------

Last edited by bruno on 2006-12-19 13:10, edited 1 time in total.

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: cgi-bin als Hauptverzeichnis

Post by lucki2 » 2006-12-19 13:06

Ja, deswegen Cancelt jeder ab mit dem Kommentar: wo Deine Konfiguration liegt, mußt Du selber wissen. Alle Möglichkeiten, das anders zu machen.
Ok.

aber wie gesagt habe:
ScriptAlias /cgi-bin/ "/DER/CGI/PFAD/"
und
<Directory "/DER/CGI/PFAD">
...
Options +ExecCGI -Includes
...
</Directory>
wie Du siehst ist da das ExecCGI gesetzt, daher geht in diesem Verzeichnis Perl. Jetzt kannst Du natürlich auf dieses Verzeichnis die DocumentRoot legen.

Oder Du gehst weiter runter(das ist ein SuSE-Default):
<Directory "/srv/www/htdocs">
Wenn Du nun den Kommentar ließt, weißt Du was zu tun ist!
Options None
ist normal zu wenig.

Code: Select all

Options +ExecCGI -Indexes FollowSymLinks MultiViews
und

Code: Select all

AllowOverride AuthConfig
wenn du .htacces nutzen willst - sonst kann es auf None stehen bleiben.

Sowohl die DokumentRoot als auch das cgi-Verzeichnis würde ich umsetzen(irgendwo hin, wo es dir passt).

Sowie Du einen VHost hast, wird die Konfiguration hinfällig, das ist 1.x clums, der einen ärgern kann.

Wie gesagt, aus Sicherheitsgründen heraus würde ich aber mir mod_rewrite arbeiten.
# Global configuration that will be applicable for all virtual hosts, unless
# deleted here, or overriden elswhere.
#
Pfff. Unsinn(war irgendwann einmal so ;) ).

bruno
Posts: 26
Joined: 2006-12-12 09:30

Re: cgi-bin als Hauptverzeichnis

Post by bruno » 2006-12-19 13:15

Herzlichen Dank für Deine Hilfe lucki2 :) Ich werde das jetzt mal in Ruhe ausprobieren. Bei mod_rewrite habe ich eben ein kleines Problem das es eben nur richtig innerhalb des cgi-bin läuft. Siehe meinen Beitrag "mod_rewrite cookieproblem".

Aber trotzdem nochmal vielen Dank für Deine prima Tipps und Deine Geduld mit mir. :wink:

Gruß Bruno

lucki2
Posts: 427
Joined: 2006-10-03 01:31

noch eins

Post by lucki2 » 2006-12-19 13:31

sonst habe ich ganz schlechtes Gewissen:
FollowSymLinks
Pass damit auf. In der DokumentRoot brauchst Du es meistens, wenn du aber irgendwie darauf verzichten kannst: lass es weg und Indexes wirst Du vielleicht anschalten wollen.
Was das Andere angeht: ist gesagt, was zu sagen war.