Laravel 4和Symlinks

时间:2014-03-03 13:44:21

标签: php laravel symlink

所以我是Laravel 4的新手,我正在试图弄清楚如何Symlink我网站的两个部分。

首先是应用/存储 第二个是 public / cache (这是存储图像缓存的地方)

我想将这两个移动到我服务器上的SSD中,但是每当我尝试设置这些符号链接时,Laravel都会抛出错误。

该错误是:

ErrorException
file_put_contents(/meta/services.json): failed to open stream: No such file or directory

显然,它无法找到文件系统,并且符号链接不能与Laravel一起使用。但是符号链接可以处理单个文件(例如jpeg),所以我很肯定初始设置没有问题。

为了澄清,文档根目录设置为 httpdocs / public (通过Plesk设置)

应用程序(和框架)位于 httpdocs 文件夹中,该文件夹不再用作vhost根目录。

正如我所暗示的那样,它是Plesk服务器。所有者属于vhost,该组属于psacln。但我认为没有任何权限/所有权问题,因为我已经验证了符号链接正在运行。

1 个答案:

答案 0 :(得分:0)

看起来你已经弄乱了别的东西,因为错误信息中的路径对我来说是错误的:

file_put_contents(/meta/services.json)
IMO,应该是这样的:

file_put_contents(/var/www/webapp/app/storage/meta/services.json)

因为,如果你已经正确完成了符号链接,你就会做类似

的事情
mv /var/www/webapp/app/storage /mnt/ssd/
ln -s /mnt/ssd/storage /var/www/webapp/app/storage

PHP正试图在root / meta文件夹中写入一个文件,可能它没有权利。