常见文件的符号链接

常见文件的符号链接

我正在尝试整合我们其中一台 CenotOS 服务器上的一些网站文件,我想要创建的设置是这样的,但我不确定这是否真的可行

我们将拥有一组所有网站使用的文件:

/home/commonfiles/
                 public_html/
                 library/

每个站点目录看起来是这样的:

/home/site1/bespoke/
                   css/
                   images/ 

每个“站点”都将使用公共文件中的public_html和文件夹。符号链接显然可以实现这一点。不过,我还想指出绝对链接所来自的站点。我知道可以创建相对符号链接,但绝对符号链接是否可以包含相对符号链接?library/home/commonfiles/public_html/css/home/site1/bespoke/csssite1/home/commonfiles/public_html/

我希望这是有意义的,因为我真的很需要一些建议

编辑

详细地说,这是我想要的基本结构(如果可能的话)

/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

我猜想本质上映射 - 例如 -/home/site1/public/css -> /home/site1/bespoke/css不一定非要通过链接完成,也许可以通过某种方式在 .htaccess 中完成。但愿您能明白我在这里想要实现的目标。

补充一下,这基本上就是我想要做的(如果它有效的话):

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

答案1

链接无法实现

答案2

答案是肯定的。下面的测试可能对于您想要做的事情来说太复杂了,但它可能有助于说明可以做什么。

$ 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

最后一条记录很有意思。它本质上是/absolute/path/to/test/a/../a/dir1

答案3

我在我的一台网络服务器上安装了多个 Wordpress 来执行此操作。

我设置了'wp-content'目录(其中包含主题和插件)以便在安装之间共享:

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

可以这样做:

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

我已将我的/home/common/wp-content目录的权限设置为rwxrwxrwx在此特定设备上。

相关内容