【问题标题】:Laravel 5.1 on ubuntu 14.04 Problems with sessionubuntu 14.04 上的 Laravel 5.1 会话问题
【发布时间】:2015-11-14 15:51:35
【问题描述】:

我在 ubuntu 14.04 上的 laravel (5.1) 会话存在以下问题。每个请求都会在 storage/framework/sessions 中生成一个新的会话文件。正如您已经猜到的那样,会话驱动程序是'file','lifetime'设置为120。这似乎是某种权限错误。我已经将存储文件夹的权限设置为755(也是777),但是每个新生成的会话文件的权限都是664(rw- rw- r--)。通过谷歌,我只发现了一个与 dd(...) 相关的会话问题,但这里不是这种情况,尤其是它在 Windows 环境中运行良好。 我最初想做的是使用redirect()->intended(),它使用存储在会话中的信息。

我必须以特殊方式运行 php artisan serve 吗?

【问题讨论】:

  • 可以显示错误信息吗?
  • 似乎没有错误。 redirect()->intended('dashboard') 只是在会话中找不到 'url.intended' 时使用给定的后备路由: $this->session->pull('url.intended', $default);第二个症状是每次请求都会生成一个新的会话文件,因此无论如何都不会保留任何信息
  • 这不是会话预期的行为。不过很奇怪。尝试清除缓存,然后转储自动加载。
  • 这没有帮助。我还尝试再次“作曲安装”。
  • 你说你设置了storage文件夹的权限,你也设置了storage所有子文件夹的权限吗? (应用程序、框架、会话...)

标签: php session laravel ubuntu-14.04 laravel-5.1


【解决方案1】:

自从我使用 Vagrant 和 Homestead 以来,一切都很好。运行 PHP 内置的网络服务器似乎只是一个杂项。

【讨论】:

    【解决方案2】:

    测试授予存储文件夹所有权限的功能

    find /path/to/storage/folder -type d -exec chmod 777 {} \;
    

    如果可行,则设置在大多数情况下应为的propper权限

    find /path/to/storage/folder -type d -exec chmod 775 {} \;
    

    这样您只更改目录而不是文件的权限。

    如果问题是新创建的问题被设置为不同的所有者,您可以为其设置权限。

    就像当我在本地服务器上开发时,我有我的用户和 www-data 用户,它是 Apache 的用户,所以如果 apache 创建一个新文件,所有权就会开始混乱。

    find /path/to/root/of/project -type d -exec chmod g+s {} \;
    

    【讨论】:

    • 没有帮助。文件夹权限已经很好了。我想问题是那些新生成的会话文件没有正确的权限。它们只有 664,但我不知道为什么。
    • 好的,所以检查这些新文件的所有者和组,如果它们与文件夹的不同,那么使用我将在答案中放置的命令
    • 文件拥有相同的所有者和组。对了,启动的laravel服务器的进程属主是一样的。
    猜你喜欢
    • 2016-02-21
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 2015-01-06
    • 1970-01-01
    相关资源
    最近更新 更多