【问题标题】:Laravel 4 and SymlinksLaravel 4 和符号链接
【发布时间】:2014-03-03 22:20:58
【问题描述】:

所以我是 Laravel 4 的新手,我正试图弄清楚如何对我网站的两个部分进行符号链接。

第一个是应用/存储 第二个是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 文件夹中。

正如我所暗示的,它是一个 Plesk 服务器。 owner 属于 vhost,group 属于 psacln。但我认为没有任何权限/所有权问题,因为我已验证符号链接正常工作。

【问题讨论】:

  • 值得指出的是,这与 Laravel 完全无关。 file_put_contents 是一个原生 PHP 函数。您的问题几乎可以肯定在于权限。是共享主机吗?在这种情况下,“/meta”路径实际上将类似于“/path/to/user/meta”
  • 权限都检查正常。这是一个dedi。

标签: php laravel symlink


【解决方案1】:

看起来你搞砸了其他东西,因为错误消息中的路径在我看来是错误的:

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 正在尝试在根 /meta 文件夹中写入一个文件,它可能没有权限。

【讨论】:

    猜你喜欢
    • 2018-12-15
    • 2021-01-28
    • 2019-01-11
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2018-07-16
    • 2018-06-20
    相关资源
    最近更新 更多