symlinks im skeleton werden ignoriert

Plesk, Confixx, Froxlor, SysCP, SeCoTo, IspCP, etc.
Post Reply
coffein
Posts: 4
Joined: 2009-03-11 15:00
 

symlinks im skeleton werden ignoriert

Post by coffein »

Hallo,
ich habe folgendes Problem:

Ich benötige für einen bestimmten Reseller-Account ein modifiziertes Domain-Template (skeleton). Im httpdocs-Verzeichnis soll per symbolischen Links auf ein bestimmtes Verzeichnis außerhalb der Domain-Verzeichnisstruktur verwiesen werden. Beispiel: CMS ist ein symlink auf ein Verzeichnis, das ich mithilfe eines svn-Exports gelegentlich füttere. Mithilfe des Symlinks sollen alle Domains bei Aufruf von http://www.domain.de/CMS Zugriff auf dieses Verzeichnis haben.

Praktisch funktioniert das ganze auch... Leider macht mir das Domain-Template einen Strich durch die Rechnung (wäre ja auch zu schön gewesen). Zwar kann ich in das entsprechende .skel - Verzeichnis symbolische Links anlegen – beim Erstellen einer neuen Domain werden diese Links aber nicht angelegt. Dr. Google habe ich zu diesem Problem schon ein paar Stunden interviewt, aber er ist da recht unkooperativ :-k

Hat jemand eine Lösung? Oder Anregungen zu einem Workaround?

Gruß
Coffein
coffein
Posts: 4
Joined: 2009-03-11 15:00
 

Re: symlinks im skeleton werden ignoriert

Post by coffein »

Hallo matzewe01,

danke für deine Antwort.

Die Sache mit der eigenen vhost.conf war mir bewusst. Da ich in die .skel auch ein conf Verzeichnis mit einer vhost.conf anlegen kann und in diese Datei eine Variable für den Domainnamen ablegen kann, ist das kein Problem. Wenigstens da funktioniert.

Leider weiß ich gerade nicht, wie mir die horde-conf weiterhelfen soll. So wie ich das sehe, löst Plesk das über eine Subdomain. Kann aber auch sein, dass ich gerade blind bin oder dass der Groschen mal wieder in Pfennigstücken fällt :)

Kannst du mich mit der Nase drauf stoßen? :roll:
coffein
Posts: 4
Joined: 2009-03-11 15:00
 

Re: symlinks im skeleton werden ignoriert

Post by coffein »

mhhh...

Leider funktioniert das nicht per Subdomain. Es ist nicht nur ein Link auf ein Verzeichnis. Es ist jeweil ein Link auf das Backend, das Frontend und ein Verzeichnis mit ein paar PHP-Klassen, die sowohl Front- als auch Backend verwenden. Der Server ist übrigens zu 90% für die CMS-Lösung gemietet.

Gibt es noch eine andere Möglichkeit? Ich dachte evtl. an ein Shellscript, dass die Links anlegt, sobald eine neue Domain erstellt wurde. Ich hatte auch mal irgendwo gelesen, dass man irgendwo im Pleskpanel solche Aktionen auf ein Script legen kann. Leider finde ich in der Plesk-Doku mal wieder nix :(
Das ist zwar nicht der eleganteste Weg, aber im Moment wahrscheinlich meine einzige Hoffnung.

Im Moment sind es knapp 30 Domains, die mit dem CMS versorgt werden... An die 100 komme ich irgendwann auch noch ;)
freddy36
Posts: 273
Joined: 2008-03-20 17:31
 

Re: symlinks im skeleton werden ignoriert

Post by freddy36 »

coffein wrote:Gibt es noch eine andere Möglichkeit?
http://httpd.apache.org/docs/2.2/mod/mod_alias.html
User avatar
daemotron
Administrator
Administrator
Posts: 2641
Joined: 2004-01-21 17:44
Contact:
 

Re: symlinks im skeleton werden ignoriert

Post by daemotron »

Das wird wohl nicht reichen... wenn es sich um das CMS handelt, welches ich vermute (Typo3?) oder zumindest ähnlich arbeitet, dann wird von der Applikation selbst auf Dateien unter dem ver-symlink-ten Pfad per fopen() zugegriffen - also unter Umgehung des Webservers.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time
coffein
Posts: 4
Joined: 2009-03-11 15:00
 

Re: symlinks im skeleton werden ignoriert

Post by coffein »

Das CMS ist nicht Typo3, es ist ein Eigenbau.

Ich hab allerdings die skeleton-Lösung weiterverfolgt:

1: ein Shellscript, das mir im entsprechenden Verzeichnis die Symlinks anlegt, wobei der erste Parameter der Domainname ist:

Code: Select all

#!/bin/sh
ln -s /srv/www/vhosts/meine-quelldomain/mein/zielverzeichnis1/ /srv/www/vhosts/$1/httpdocs/meinZiellink1
ln -s /srv/www/vhosts/meine-quelldomain/mein/zielverzeichnis2/ /srv/www/vhosts/$1/httpdocs/meinZiellink2
ln -s /srv/www/vhosts/meine-quelldomain/mein/zielverzeichnis1/meineZieldatei1.php /srv/www/vhosts/$1/httpdocs/meinZiellink3
ln -s /srv/www/vhosts/meine-quelldomain/mein/zielverzeichnis1/meineZieldatei2.php /srv/www/vhosts/$1/httpdocs/meinZiellink4

2: Ich habe je nach Reseller (oder Kunde? weiß ich gerade gar nicht) mehrere skeletons. Je nachdem was ich gerade anlegen will (normales Hosting oder ein Hosting mit dem CMS). Das Skript in das entsprechende CMS-Reseller .skel-Verzeichnis gespeichert.

3: Im Event-Handler ein Ereignis anlegen:
Ereignis: Physikalisches Hosting angelegt
Prio: normal
Benutzer: root
Befehl: /srv/www/vhosts/<new_domain_name>/pfadZumScript/script.sh

4: eine vhost.conf muss bei der neuen Domain natürlich auch angelegt werden, da sonst den "symlinks not gefollowed" wird. Außerdem packe ich noch ein paar Rewrite-Rules rein, damit kann ich mir erstmal eine .htaccess sparen:

Code: Select all

<Directory /srv/www/vhosts/@domain_name@/httpdocs>
        Options +FollowSymLinks
        RewriteEngine on
        RewriteRule ^.*_([0-9]+).html:?(.*)?$ index.php?nav=$1&$2
        php_admin_value open_basedir "/srv/www/vhosts/@domain_name@/httpdocs:/srv/www/vhosts/pfadZuDen/lnTargets"
</Directory>
die vhost.conf kommt ins entsprechende .skel-Verzeichnis in das Verzeichnis conf.

Das ganze funktioniert bei mir bestens. Ist vielleicht nicht die Königslösung, aber besser bekomme ich es mit meinen bescheidenen Linux- und Pleskkenntnissen leider nicht hin.
Post Reply