Serverkonfiguration

Hallo,

ich habe einen Mietserver (BS: Suse64) auf dem ein paar Domains geschaltet sind. Nun möchte ich folgendes machen: z.B. Domain A.de hat ein Verzeichnis ‚Klassen‘ indem, wie der Name schon sagt, Klassen gespeichert sind. Jetzt wird Domain B.de, C.de usw. auf dem Server geschaltet und aktiviert. Ich möchte, dass alle Domains die Klassen von A.de nutzen können (nur lesen). Nur leider bekomme ich immer eine Fehlermeldung, dass der Zugriff nicht erlaubt ist. Das Verzeichniss ‚Klassen‘ auf A.de und die Dateien ist/sind auf lesen für alle gesetzt.
Was muss ich machen, wie muss ich die Domain A.de konfigurieren um die Klassen nicht immer wieder kopieren zu müssen, neue Versionen auf alle Domains hochzuladen usw., so dass ich nur noch ein Verzeichniss habe indem meine Klassen für alle Domains liegen.

Vielen Danke im voraus
bin für jede Anregung Dankbar

MacFlie

Hallo MacFlie,

ich habe einen Mietserver (BS: Suse64) auf dem ein paar
Domains geschaltet sind.
Domain A.de hat ein Verzeichnis ‚Klassen‘
Ich möchte,
dass alle Domains die Klassen von A.de nutzen können (nur
lesen).

Für solche Sachen kannst Du NFS4 nehmen:
http://www.tuxfutter.de/wiki/NFS
Die Domain a.de fungiert sozusagen als Server und stellt das Verzeichnis Klassen bereit, das die Clients dann bei sich mounten können, kannst Du ja nur lesend einstellen. Das geschieht im wesentlichen in der Datei /etc/exports
http://linux.die.net/man/5/exports
Setzt voraus, daß Du mit den Sicherheitsrisiken leben kannst (z.B. unverschlüsselte Übertragung).
Wenn das nicht tragbar ist nimm das ebenfalls dort erwähnte AFS
http://www.openafs.org/
von dem ich aber nur weiss, daß es existiert und daß es sicher mal NFS ablösen wird.

Viele Grüße
Marvin

Hallo Marvin,

das mit der Domain als ‚Server‘ und die anderen mounten das Verzeichnis und haben dann Zugriff auf die PHP-Klassen ist mir schon klar, ABER, wie stellt man das praktisch an. Ich konfiguriere den Server fast nur mit Plesk und kleinere Sachen mit Putty. Komme aus der Windows-Welt.
Gibt es für solche Fälle nicht eine Beispielkonfiguration (?), denn eingentlich ist das doch nur die Fortführung des Klassengedankens über Domaingrenzen hinweg. Sind nicht schon andere Leute über dieses Problem gestolpert?
Alle Inhaber einer Domain auf Server xyz können über einen Pool von Klassen verfügen. Und wenn diese Klassen erweitert werden, kommt die neue Version in den ‚Pool‘ und kann benutzt werden. Stelle ich mir die Sache zu einfach vor, oder zu kompliziert?

Gruß MacFlie

Hallo Marvin,

das mit der Domain als ‚Server‘ und die anderen mounten das
Verzeichnis und haben dann Zugriff auf die PHP-Klassen ist mir
schon klar, ABER, wie stellt man das praktisch an. Ich

Mir ist das garnicht klar .

Die domains liegen doch alle auf dem selbern server ?
In einem Unterverzeichniss , von mir aus in home ?
Oder hast du pro domain eine partition ?

Also ich würd mal mit symbolischen links arbeiten , so kennich jedenfalls es wenn man Ordner auf einem system sharen will.
Klar muss der Target Ordner genug zugriffsrecht gewähren.

Welcher sin hinter einem mounten versteckt ist mir nun garnicht klar , wir reden doch nicht von einem Fileshare Server oder Netzwerkserver, sondern ganz simple von einem Webserver .

Domain und Domain ist nicht immer das gleiche , das eine ist der name im internet , das andere netzwerke .

Hallo Marvin,

das mit der Domain als ‚Server‘ und die anderen mounten das
Verzeichnis und haben dann Zugriff auf die PHP-Klassen ist mir

Ah endlich sagst du welche Klassen du meinst, du meinst also einfach nur php dateien , ob das classen sind ist doch wurscht, sie müssen durch den webserver geparst werden . Somit ist das wirklich leicht mit Symbolischen Links auf Linux / UNIX zu machen.

Symbolische Links sind weiterleitungen .

/home/www.eins.de/htdochs/gemeinsamephp/
/home/www.zwei.de/htdochs/ link zu /home/www.eins.de/htdochs/gemeinsamephp/
/home/www.drei.de/htdochs/ link zu /home/www.eins.de/htdochs/gemeinsamephp/

also sowas wie

ln -s /home/www.eins.de/htdochs/gemeinsamephp/ /home/www.zwei.de/htdochs/gemeinsamephp
ln -s /home/www.eins.de/htdochs/gemeinsamephp/ /home/www.drei.de/htdochs/gemeinsamephp

dabei muss man aber dann wirklich für alle zugriff haben auf
/home/www.eins.de/htdochs/gemeinsamephp

wie man das mit plesk macht weiss ich nicht, ich brauch so ein tool nicht wirklich , ich arbeite auf commando zeile .

aber bestimmt gibt es da auch möglichkeiten (oder auch nicht)

Hallo Leute,

vielen Dank für die Tips. Ich werd das mal mit den SymLinks und einer Testdatei versuchen.

MacFlie

Hallo macflie,

ABER, wie stellt man das praktisch an. Ich
konfiguriere den Server fast nur mit Plesk und kleinere Sachen
mit Putty.

Ist ja kein Problem. Schliesslich ist putty auch nur ne Art entferntes Terminal. Also eine Kurzeinführung in NFS, wobei ich natürlich nicht auf die Feinheiten eingehe, dazu gibt es genug Links. Ich nehme jetzt an, Du hast drei Rechner, alpha, beta und gamma, die sich gegenseitig anpingen können. alpha soll der Server sein, auf dem dein Verzeichnis /klassen liegt (wird sicher nicht in der Root liegen, das wäre sehr unorthodox, ist aber für das Beispiel uninteressant).
Weitere Voraussetzung ist, daß der Portmapper-Dienst läuft, das sollte aber auf einem Linux-System die Regel sein. Durch den Befehl

rpcinfo -p

kannst Du dich davon überzeugen.
Auf alpha musst Du jetzt nur noch in der Datei /etc/exports die gewünschten Verzeichnisse freigeben. In deinem Fall würde das so aussehen:

/klassen (ro)

Das ist fast selbsterklärend, das Verzeichnis /klassen (mit vollem Pfad) wird für alle read-only freigegeben.
Sollte es nicht für alle freigegeben werden, müssen die entsprechenden Rechnernamen (oder IPs) eingetragen werden, also z.B.

/klassen beta(rw)

In dem Fall darf nur Rechner beta, diesmal aber lesend und schreibend auf das Verzeichnis /klassen zugreifen.
Es sind auch Domain-Einträge mit oder ohne Jokerzeichen möglich:

/klassen \*.meinedomain.local(ro)

Damit ist allen Rechnern der Domain meinedomain.local der lesende Zugriff auf das Verzeichnis /klassen möglich.

Auf Client-Seite genügt dann ein einfacher mount-Befehl, um auf das Verzeichnis zugreifen zu können:

mount -t nfs alpha:/klassen /extmnt

hängt das Verzeichnis /klassen des Rechners alpha in das lokale Verzeichnis /extmnt des lokalen Rechners (z.B. beta) ein.
Das lässt sich natürlich durch einen Eintrag in die /etc/fstab vereinfachen:

alpha:/klassen /extmnt nfs timeo=14,rsize=8192,wsize=8192

alpha:/klassen, /extmnt und nfs entsprechen dem obigen mount-Befehl, timeo, rsize und wsize sind zusätzliche Optionen:
timeo = Wartezeit in Zehntelsekunden, bis neuer Übertragungsversuch gestartet wird
rsize, wsize = Anzahl der Bytes, die gleichzeitig gelesen, bzw. geschrieben werden. Die günstigste Anzahl schwankt und kann durch Experimente festgelegt werden. 8192 ist mein Lieblingswert :wink:
Getrennt wird ganz gewöhnlich durch

umount

bei Problemen während der Verbindung (aber auch nur dann) sollte man

umount -f

versuchen.

Für die zahllosen weiteren Details und Optionen (und was sonst noch zu beachten ist) verweise ich jetzt einfach auf die zuständigen man-Pages und die Links, sonst wird das hier ein Buch :wink:

Viele Grüße
Marvin