Não é possível com links
Estou tentando consolidar alguns arquivos de sites em um dos nossos servidores CenotOS, a configuração que desejo criar é algo assim, mas não tenho certeza se é realmente possível
teríamos um conjunto de arquivos usados por todos os sites:
/home/commonfiles/
public_html/
library/
cada diretório de sites seria parecido com isto:
/home/site1/bespoke/
css/
images/
cada "site" usaria as pastas public_html
e library
de dentro dos arquivos comuns. Links simbólicos obviamente funcionariam para isso. O que eu também quero é que /home/commonfiles/public_html/css
aponte para /home/site1/bespoke/css
onde site1
é o site do qual o link absoluto para /home/commonfiles/public_html/
é. Eu sei que é possível criar links simbólicos relativos, mas é possível que um symlink absoluto contenha um relativo?
Espero que isso faça sentido, pois eu realmente aprecio alguns conselhos
EDITAR
para elaborar, esta é a estrutura básica que eu gostaria (se for possível)
/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
Eu acho que essencialmente o mapeamento de - por exemplo - /home/site1/public/css -> /home/site1/bespoke/css
não necessariamente tem que ser feito com links, talvez isso possa ser feito no .htaccess de alguma forma. Espero que você possa ver o que estou tentando alcançar aqui.
apenas para adicionar isso, isso é essencialmente o que eu gostaria de poder fazer (se funcionasse):
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
A resposta é sim. O teste abaixo provavelmente está muito confuso para o que você quer fazer, mas pode ajudar a ilustrar o que pode ser feito.
$ 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
Essa última entrada é interessante. É essencialmente /absolute/path/to/test/a/../a/dir1
.
Eu faço isso com várias instalações do Wordpress em um dos meus servidores da Web.
Eu configurei o diretório 'wp-content' (que tem temas e plugins) para ser compartilhado entre instalações assim:
/var/<site>/wp-content -> /home/common/wp-content
/var/<site2>/wp-content -> /home/common/wp-content
etc...
Isso seria feito:
cd /var/<site>
ln -s wp-content /home/common/wp-content
Eu tenho perms no meu diretório /home/common/wp-content
definido como rwxrwxrwx
neste dispositivo em particular.
Tags symbolic-link files linux centos