2012-02-15 106 views
0

我想将我的数据目录移到Web根目录之外。我有存储在我的数据库中的文件路径,并希望能够通过符号链接重定向查找文件,而不必更改保存的路径。使用符号链接的PHP/Linux读取文件路径

为例,目前我有这样的结构:

/root/webroot/data/file.ext 

我的数据库路径将是:/root/webroot/data/file.ext为好。我想Web根目录之外的移动数据,所以我必须:

/root/data/file.ext 
/root/webroot/data -> root/data 

凡/根/根目录/数据是一个Linux的风格符号链接到根/数据。我已经设置好了,但是当我在先前存储的路径(/root/webroot/data/file.ext)上执行读取文件时,它将失败。即我这样做:

readfile('/root/webroot/data/file.ext'); 

我回去:

Warning: readfile(/root/webroot/data/file.ext) [function.readfile]: failed to open stream: No such file or directory in [file] on line ... 

有什么我可以做些什么来帮助这些路径解决?

注意:文件夹和文件的权限全部匹配。符号链接的根目录是root,从它创建它,但chown似乎不起作用。

+0

男人更难。 'chown -h' – 2012-02-15 04:18:43

+0

愚蠢的问题,但你的符号链接是否正确?即你可以在cli上遍历它吗?从你上面写的东西看来,它看起来会在root/webroot/root/data中寻找目录。 – Noodles 2012-02-15 04:25:25

+1

更新数据库不是更容易吗? – 2012-02-15 04:27:34

回答

0

你从哪里运行脚本?如果你不带斜线调用目录:

readfile('root/webroot/data/file.ext'); 

那么你最好确保它是在同一目录的根正坐在运行但是,如果从根目录运行此,您将需要更新读文件路径如下:

readfile('data/file.ext'); 
+0

嘿,主角的斜线实际存在于问题中......“根”应该是/ home/[网站名称]。我更新了问题。 – garromark 2012-02-15 06:10:39