1 votes

Symlinks pour les fichiers communs

J'essaie de consolider certains fichiers de sites web sur l'un de nos serveurs CenotOS. La configuration que je veux créer ressemble à ceci, mais je ne suis pas sûr que ce soit possible.

nous aurions un ensemble de fichiers utilisés par tous les sites :

/home/commonfiles/
                 public_html/
                 library/

chaque répertoire de site ressemblerait à quelque chose comme ceci :

/home/site1/bespoke/
                   css/
                   images/ 

chaque "site" utiliserait le public_html y library à partir des fichiers communs. Les liens symboliques fonctionneraient évidemment pour cela. Mais ce que je voudrais aussi, c'est que /home/commonfiles/public_html/css pour pointer vers /home/site1/bespoke/css donde site1 est le site vers lequel le lien absolu est établi /home/commonfiles/public_html/ vient de. Je sais qu'il est possible de créer des liens symboliques relatifs, mais est-il possible qu'un lien symbolique absolu contienne un lien symbolique relatif ?

J'espère que vous comprenez ce que je veux dire et j'aimerais vraiment avoir des conseils.

EDITAR

pour élaborer, voici la structure de base que je voudrais (si c'est possible)

/home/common
/home/common/public
/home/common/library
/home/site1
/home/site1/public -> /home/common/public
/home/site1/library -> /home/common/library
/home/site1/bespoke/
/home/site1/bespoke/css
/home/site1/bespoke/images
/home/site1/public/css -> /home/site1/bespoke/css 
/home/site1/public/images -> /home/site1/bespoke/images
/home/site2
/home/site2/public -> /home/common/public
/home/site2/library -> /home/common/library
/home/site2/bespoke/
/home/site2/bespoke/css
/home/site2/bespoke/images
/home/site2/public/css -> /home/site2/bespoke/css
/home/site2/public/images -> /home/site2/bespoke/images

Je suppose qu'essentiellement la cartographie de - par exemple - /home/site1/public/css -> /home/site1/bespoke/css ne doit pas nécessairement être fait avec des liens, peut-être que cela pourrait être fait dans le .htaccess d'une certaine manière. J'espère que vous pouvez voir ce que j'essaie de faire ici.

juste pour ajouter à cela, c'est essentiellement ce que j'aimerais être capable de faire (si cela fonctionnait) :

mkdir test
mkdir test/common
mkdir test/common/public
mkdir test/common/library
mkdir test/site1
mkdir test/site2
mkdir test/site1/bespoke
mkdir test/site2/bespoke
mkdir test/site1/bespoke/css
mkdir test/site1/bespoke/images
mkdir test/site2/bespoke/css
mkdir test/site2/bespoke/images
ln -s /home/user/test/common/public test/site1/public
ln -s /home/user/test/common/library test/site1/library
ln -s /home/user/test/common/public test/site2/public
ln -s /home/user/test/common/library test/site2/library
cd test/common/public
ln -s ../bespoke/css css
ln -s ../bespoke/images images

1voto

Howiecamp Points 171

Ce n'est pas possible avec les liens

0voto

jason saldo Points 5036

La réponse est oui. Le test ci-dessous est probablement trop compliqué pour ce que vous voulez faire, mais il peut aider à illustrer ce qui peut être fait.

$ mkdir test
$ mkdir test/a
$ mkdir test/a/dir1
$ touch test/a/dir1/file1
$ ln -s /absolute/path/to/test/a test/b
$ ls -l test
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 a
lrwxrwxrwx 1 user user   28 2009-11-13 07:45 b -> /absolute/path/to/test/a
$ ls -l test/b
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir1
$ cd b
$ ln -s ../a/dir1 dir2
$ ls -l
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir1
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir2 -> ../a/dir1
$ ls -l dir1
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 file1
$ ls -lH dir2
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 file1
$ cd ../a
$ ls -l
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir1
drwxr-xr-x 3 user user 4096 2009-11-13 07:45 dir2 -> ../a/dir1

Cette dernière entrée est assez intéressante. C'est essentiellement /absolute/path/to/test/a/../a/dir1 .

0voto

bigmattyh Points 9167

Je fais cela avec les multiples installations de Wordpress sur l'un de mes serveurs web.

J'ai configuré le répertoire 'wp-content' (qui contient les thèmes et les plugins) pour qu'il soit partagé entre les installations de cette manière :

/var/<site>/wp-content -> /home/common/wp-content
/var/<site2>/wp-content -> /home/common/wp-content
etc...

Cela serait fait :

cd /var/<site>
ln -s wp-content /home/common/wp-content

J'ai des permanentes sur mes /home/common/wp-content sur le répertoire rwxrwxrwx sur cet appareil particulier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X