roman lenz: verzeichnisstrukture auf einem webserver

hi hi

sollte es auf einem webserver, im root,  zwei verzeichnisse geben, eins für http (htdocs) und eins für cgi (cgi-bin)? oder nur eins für alles?

bis bis roman

  1. sollte es auf einem webserver, im root,  zwei verzeichnisse geben, eins für http (htdocs) und eins für cgi (cgi-bin)? oder nur eins für alles?

    Nein. Sofern Du mit "Webserver" den Rechner meinst und dementsprechend mit "root" das Wurzelverzeichnis des gesamten Dateisystems, dann haben die Dokumente dort eh nichts zu suchen.
    Meinst Du mit "webserver" & "root" das Dokumentenverzeichnis, dann ebenfalls nicht, weil das Dokumentenverzeichnis bereits htdocs heißt und Du an Sachen (inklusive CGIs), die außerhalb von htdocs/ liegen, nicht per Webbrowser rankommst.

    Gruß,
      soenk.e

    1. hi hi Sönke

      ich habe mich etwas undeutlich ausgedrückt

      ist es eher typisch die webserverstruktur so aufzubauen

      /htdocs/http/
      /htdocs/cgi-bin/

      oder eher so

      /htdocs/alles

      bis bis roman

      1. ist es eher typisch die webserverstruktur so aufzubauen

        /htdocs/http/
        /htdocs/cgi-bin/

        oder eher so

        /htdocs/alles

        Die einzig vernünftige Antwort darauf kann nur lauten, daß das vom Geschmack des Seiten- und Systembetreibers abhängt.

        Der Sinn des cgi-bin-Verzeichnisses ist lediglich, daß der Systembetreiber in der Lage ist, alle vom Seitenbetreiber eingesetzten Programme zumindest halbwegs unter Kontrolle zu haben. Die CGI-Schnittstelle erlaubt die Ausführung jedweder Programmformen, so daß die Gefahr besteht, daß jemand fürchterlich viel Unsinn macht und möglicherweise sogar den Rechner zerlegt.
        Sind diese Programme auf den gesamten Webspace verteilt, schön vermischt mit harmlosen Dokumenten, wird es ungleich schwieriger, da ein Auge drauf zu haben.

        Als Seitenbetreiber und Anhänger von sinnvollen, selbstbeschreibenden URLs würde ich persönlich natürlich die Vermischung der "aktiven Dateien" mit den "Datendateien" vorziehen.
        Es interessiert den Nutzer nicht, ob die Seite X von einem CGI-Programm ausgeliefert wurde oder eine normale HTML-Datei ist. Wichtiger als die interne Struktur einer Webseite ist für ihn die Orientierung innerhalb des Angebots; und die sicherlich einfachste Orientierungmöglichkeit kann die URL sein, denn sie folgt einem weit verbreiteten Schema aus Ordnern und Objekten, getrennt durch Schrägstriche. Aus diesem Grund ist es nebenbei bemerkt auch ein unschöner faux-pas, wenn man die Statuszeile mit Javascript zumüllt oder per <frameset> versucht, die Adressleiste zu verschleiern.

        Dementsprechend gehört beispielsweise das Anmeldeprogramm für einen Infodienst in dasselbe Verzeichnis wie die Informationen zum Dienst, etwa so:

        /infodienst/                     <- allgemeine Informationen, Einleitung
          /infodienst/nutzungsbedingungen  <- URL erklärt sich selbst (!)
          /infodienst/anmeldung            <- Anmeldeformular und -verarbeitung, ein CGI-Programm

        Nicht so:

        /html/infodienst/index.html
          /html/infodienst/nutzungsbedingungen.html
          /cgi-bin/infoanmeldung.cgi

        Und wo ich gerade dabei bin, schon garnicht so:

        /index.php?site=1123&menu=info&page=info
          /index.php?site=1123&menu=infounterseite&page=agb
          /index.php?site=1123&menu=infocgi&page=subscribe

        (Ersetze .php durch eine beliebige Anwendungsendung)

        Gruß,
          soenk.e

      2. Hi roman,

        ist es eher typisch die webserverstruktur so aufzubauen
        /htdocs/http/
        /htdocs/cgi-bin/

        die Definition der Namen alleine bewirkt noch gar nichts. Entscheidend ist, welche Attribute die Serverkonfiguration für die entsprechenden URL-Muster definiert hat.

        1. Ein /cgi-bin muß keineswegs CGI-Skripte enthalten.
        2. CGI-Skripte können auch in Verzeichnissen mit anderen Namen enthalten sein.
        3. Selbst wenn /cgi-bin das (einzige) Verzeichnis wäre, welches die Ausführung von CGI-Skripten erlaubt, gibt es doch immer noch verschiedene (und unterschiedlich gute!) Methoden, dies in der Server-Konfiguration zu realisieren (Apache: "ScriptAlias" ist zu bevorzugen).

        Du kannst Deine Verzeichnisstruktur aufbauen, wie Du willst. Es ist aber hilfreich, wenn Du verstehst, was Du tust - insbesondere, wenn Du verstehst, _warum_ Namen hier Schall und Rauch sind.

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
         => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
        Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.