091108: Wieso wird Perl/Python häufig im Ordner cgi-bin abgelegt?

Mir ist aufgefallen, dass man bei meinem Webhoster alle Perl bzw. Python Skripte im Ordner cgi-bin ablegen muss. Den Pfad cgi-bin habe ich auch schon bei anderen Webseiten gesehen.
Ist dies eine Pflicht bzw. ein Standard? Hat dies einen speziellen Grund?

Außerdem kann ich eine Domain nicht zu dem Ordner cgi-bin umleiten. Ist das einfach eine Eigenheit meines Webhosters oder gibt es auch dafür eine sinnvolle Lösung?

  1. Mir ist aufgefallen, dass man bei meinem Webhoster alle Perl bzw. Python Skripte im Ordner cgi-bin ablegen muss. Den Pfad cgi-bin habe ich auch schon bei anderen Webseiten gesehen.
    Ist dies eine Pflicht bzw. ein Standard? Hat dies einen speziellen Grund?

    Das dürfte historisch begründet sein. Dadurch das man den Ordner cgi-bin irgendwo anders ablegt (im Dateisystem) sind die Skripte sicherer, zumindest vermute ich das.

    Außerdem kann ich eine Domain nicht zu dem Ordner cgi-bin umleiten. Ist das einfach eine Eigenheit meines Webhosters oder gibt es auch dafür eine sinnvolle Lösung?

    Die meisten Hoster erlauben auch mit Hilfe einer .htaccess und der AddHandler direktive, Skripte in anderen Ordnern auszuführen.

    Struppi.

  2. Hat dies einen speziellen Grund?

    ...

    Außerdem kann ich eine Domain nicht zu dem Ordner cgi-bin umleiten.

    Ja, das hat einen Grund, das Dir hat ne Sonerbedeutung. Nur in cgi-bin werden Scripte ausgeführt, sonstwo wird nur der Script-Text per http übertragen. Cgi-bin wird auch nicht im directorylisting angezeigt. Das hat Administrations und Sicherheitsgründe

    ... z.B. stell dir mal ein Upload vor der ausgeführt werden könnte...

    Struppi hat dir erläutert wie man cgi-bin umdefinieren/umbenennen könnte, aber ich denke das Konzept an sich war dir unklar.

    Sehr zu empfehlen: selfhtml lesen!

  3. Mir ist aufgefallen, dass man bei meinem Webhoster alle Perl bzw. Python Skripte im Ordner cgi-bin ablegen muss. Den Pfad cgi-bin habe ich auch schon bei anderen Webseiten gesehen.
    Ist dies eine Pflicht bzw. ein Standard? Hat dies einen speziellen Grund?

    Es ist nicht Pflicht, aber eine gewisse Tugend, Seiten, die nicht an den Browser ausgegeben werden, sondern von einem Handler verarbeitet werden sollen, in einem speziellen Directory abzulegen.

    In meiner httpd.config steht
    <Directory "some/path/bin"
      Options +ExecCGI
    </Directory>

    Dadurch wird aus diesen Verzeichnis ein CGI Verzeichnis.
    Der Name des Ordners ist frei, lautet aber meistens cgi-bin cgi oder bin
    Doch genügt das noch nicht. Apache muss wissen, welche Dateitypen mit einem Handler verbunden sind. Für Perl gibt es dann den Eintrag:

    AddHandler cgi-script .pl .cgi

    Außerdem kann ich eine Domain nicht zu dem Ordner cgi-bin umleiten. Ist das einfach eine Eigenheit meines Webhosters oder gibt es auch dafür eine sinnvolle Lösung?

    Das heisst ?
    http://1-domain.example/cgi-bin/helloworld.pl   200
    http://1-domain.example/cgi-bin/                403
    http://2-domain.example/cgi-bin/helloworld.pl   403 oder 500 oder was ???

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    1. Außerdem kann ich eine Domain nicht zu dem Ordner cgi-bin umleiten. Ist das einfach eine Eigenheit meines Webhosters oder gibt es auch dafür eine sinnvolle Lösung?

      Das heisst ?
      http://1-domain.example/cgi-bin/helloworld.pl   200
      http://1-domain.example/cgi-bin/                403
      http://2-domain.example/cgi-bin/helloworld.pl   403 oder 500 oder was ???

      mfg Beat

      Nein, nicht ganz. So wie du das oben beschreiben hast, ist es schon möglich. Ich kann nur nicht sagen, dass die Domain "www.xyz.net" nicht auf "/htdocs" sondern auf "/cgi-bin" verweisen soll.