![Laravel 5 CSRF 在生产服务器上,而不是开发服务器上](https://linux22.com/image/660005/Laravel%205%20CSRF%20%E5%9C%A8%E7%94%9F%E4%BA%A7%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E5%BC%80%E5%8F%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A.png)
我在本地开发Laravel Homestead
,然后有一个远程服务器,我将推送到该服务器进行生产。在我的本地副本上,一切都正常,没有问题。在生产上,我尝试的任何路由都会出现令牌不匹配异常,即使我在服务器上卷曲页面也是如此。
我已经搜索了两天,想找出导致这种情况的原因,但完全没有找到。我认为这可能只是服务器配置问题,但我不知道是什么原因导致它无法正常工作。我就是想不通。
/storage
具有适当的权限(目前为 777),配置文件具有唯一的会话变量,并且我的 .env 当前使用“文件”作为会话驱动程序。不过,使用“数据库”作为驱动程序时也会发生这种情况。
如果我这样做hhvm public/index.php
或者php public/index.php
它按预期工作,则不会出现 CSRF 问题。
答案1
经过大量研究,发现解决方案非常简单。HHVM 和 Nginx 在错误的用户下运行。我将它们都重新设置为 www-data,问题就解决了。