andreas: apache userdir mit mount verbinden

guten morgen zusammen,

ich habe einen testserver aufgesetzt, welcher unter verschieden subdomains verschiedene projekte zugreifbar macht. nun habe ich vor, unter

users.testserver/~username

verzeichnisse verfügbar zu machen, die mittels smb-mount eingebunden werden. sinn ist, dass man unter dem 'offiziellen testserver' sein eigenes lokales verzeichnis testen kann, ohne jedesmal committen zu müssen.

ein beispiel würde so aussehen:

users.testserver/~137 greift auf //192.168.1.137/www_share zu, users.testserver/~128 greift auf //192.168.1.128/www_share zu

soweit alles klar - meine frage: wenn ein share nicht gemountet ist, wärend der server startet (also immer :) ). ist es ja bekanntermassen nicht verfügbar. wie kann ich den server dazu bewegen, dass er bei einem zugriff auf users.testserver/~128 sofort versucht, den entsprechenden share zu mounten?

beste grüsse, andreas

  1. Hallo Andreas,

    verzeichnisse verfügbar zu machen, die mittels smb-mount eingebunden werden. sinn ist, dass man unter dem 'offiziellen testserver' sein eigenes lokales verzeichnis testen kann, ohne jedesmal committen zu müssen.

    Committen? Verstehe ich nicht. Was für ein Commit? Datenbanken?

    ein beispiel würde so aussehen:

    users.testserver/~137
    greift auf //192.168.1.137/www_share zu,
    users.testserver/~128
    greift auf //192.168.1.128/www_share zu

    soweit alles klar

    Nein, warum so herum. Ich würde es genau umgekehrt machen. Ich würde die entsprechenden Verzeichnisse auf Deiner (Linux?)-Server-Kiste über SMB als Benutzerverzeichnisse freigeben, die für die Benutzer auf ihren (Windows?)-Rechnern standardmäßig eingebunden werden. und Dein Problem erledigt sich von selbst.

    Du bekommst zusätzlich eine zentrale Datenhaltung, was die Datensicherung ungemein erleichtert.

    Freundliche Grüße

    Vinzenz

    1. hallo vinzenz,

      Committen? Verstehe ich nicht. Was für ein Commit? Datenbanken?

      in das versionierungssystem (subversion). momentan ist es so, dass nach einem commit (übernahme der änderung in die versionskontrolle) auch das serververzeichnis geupdated werden muss. dieser zusätzliche schritt lässt sich mit meiner vorgschlagenen löung umgehen, um 'mal eben' schnell paar änderungen zu testen.

      Nein, warum so herum. Ich würde es genau umgekehrt machen. Ich würde die entsprechenden Verzeichnisse auf Deiner (Linux?)-Server-Kiste über SMB als Benutzerverzeichnisse freigeben, die für die Benutzer auf ihren (Windows?)-Rechnern standardmäßig eingebunden werden. und Dein Problem erledigt sich von selbst.

      das heisst auch, dass ich nur dort arbeiten kann, wo der server steht - gar nicht gut. der 'verdrehte' ansatz passt schon sehr gut zu meinen anforderungen.

      Du bekommst zusätzlich eine zentrale Datenhaltung, was die Datensicherung ungemein erleichtert.

      die habe ich mit subversion schon. es geht tatsächlich nur um die schnelle und einfache möglichkeit sein lokales entwicklungsverzeichnis testen zu können.

      beste grüsse, andreas

      1. Hallo Andreas,

        Committen? Verstehe ich nicht. Was für ein Commit? Datenbanken?

        in das versionierungssystem (subversion). momentan ist es so, dass nach einem commit (übernahme der änderung in die versionskontrolle) auch das serververzeichnis geupdated werden muss. dieser zusätzliche schritt lässt sich mit meiner vorgschlagenen löung umgehen, um 'mal eben' schnell paar änderungen zu testen.

        in meiner Umgebung wird dazu nur der Begriff einchecken verwendet :-)

        Aber grundsätzlich wäre es sinnvoll gewesen, Du hättest die Informationen, die in Deinem zweiten Posting stehen, bereits im ersten geschrieben. Dann hätte ich mir mein Posting und die Gedanken dazu sparen können. Siehe dazu auch FAQ 07b.

        das heisst auch, dass ich nur dort arbeiten kann, wo der server steht - gar nicht gut. der 'verdrehte' ansatz passt schon sehr gut zu meinen anforderungen.

        Denn erst dieser Punkt, dass Du auch "mobil" arbeiten können willst, macht meinen Vorschlag unbrauchbar.

        die habe ich mit subversion schon. es geht tatsächlich nur um die schnelle und einfache möglichkeit sein lokales entwicklungsverzeichnis testen zu können.

        Hehe, eine Versionskontrolle hätte ich Dir später auch noch vorgeschlagen.

        Zurück zu Deinem Problem:
        Ich würde den Webserver mit dieser Aufgabe nicht belasten, selbst wenn es irgendwie gehen sollte. Bedenke, dass erst ein Request das Mounten auslösen würde und das Mounten einer SMB-Share doch einiges an Zeit in Anspruch nimmt. Mein Vorschlag wäre ein cron-Job, der folgendes macht (sowas ähnliches wie Pseudocode):

        Überprüfen des Mountstatus Deiner Shares
            Für alle Shares
                Falls eine Share nicht gemountet ist
                    Überprüfung der Verfügbarkeit des Rechners
                    Falls vorhanden
                        Share mounten
                    Ende Falls
                Ende Falls
            Ende Für

        Somit hättest Du in Abhängigkeit vom Zeitintervall bereits recht kurzzeitig nach Starten des Rechners die Freigabe gemountet. Die zusätzliche Belastung für den Server sollte auf einem Entwicklungssystem nicht ins Gewicht fallen. Falls selbst die Minute zu knapp ist, geh' nach dem Starten des Rechners einen Kaffee holen :-)

        Freundliche Grüße

        Vinzenz

        1. hey vinzenz,

          Denn erst dieser Punkt, dass Du auch "mobil" arbeiten können willst, macht meinen Vorschlag unbrauchbar.

          ok, sorry für die unpräzision ;)

          die habe ich mit subversion schon. es geht tatsächlich nur um die schnelle und einfache möglichkeit sein lokales entwicklungsverzeichnis testen zu können.

          Hehe, eine Versionskontrolle hätte ich Dir später auch noch vorgeschlagen.

          »»

          jo, sehr gut :)

          Zurück zu Deinem Problem: Ich würde den Webserver mit dieser Aufgabe nicht belasten, selbst wenn es irgendwie gehen sollte. Bedenke, dass erst ein Request das Mounten auslösen würde und das Mounten einer SMB-Share doch einiges an Zeit in Anspruch nimmt. Mein Vorschlag wäre ein cron-Job, der folgendes macht (sowas ähnliches wie Pseudocode):

          Überprüfen des Mountstatus Deiner Shares     Für alle Shares         Falls eine Share nicht gemountet ist             Überprüfung der Verfügbarkeit des Rechners             Falls vorhanden                 Share mounten             Ende Falls         Ende Falls     Ende Für

          Somit hättest Du in Abhängigkeit vom Zeitintervall bereits recht kurzzeitig nach Starten des Rechners die Freigabe gemountet. Die zusätzliche Belastung für den Server sollte auf einem Entwicklungssystem nicht ins Gewicht fallen. Falls selbst die Minute zu knapp ist, geh' nach dem Starten des Rechners einen Kaffee holen :-)

          das klingt excellent und auch leicht umsetzbar - recht herzlichen dank, so werde ich es machen.

          beste grüsse, andreas