Laravel 应用在 Heroku 上部署后无法运行
Laravel app not working after deploying on Heroku
我有一个 Laravel 应用程序在我的本地主机上运行良好,但是当我将它部署到 Heroku 云上时,出现以下错误,
ErrorException:
file_put_contents(/tmp/build_a3cd0b04/storage/framework/sessions/YZFia5zZhnq2Lz2jZmdD9uZKjiQUU9KnMmRU0oad):
Failed to open stream: No such file or directory
我试过更改存储文件夹的权限、清除缓存等,但没有任何效果。有什么想法吗?
您似乎在使用 the file driver. That isn't a very good choice on Heroku due to its ephemeral filesystem。它不会水平扩展并且会话会不可预测地丢失(每当您的 dyno 重新启动时,每天至少发生一次)。
我建议使用 Redis、Memcached 或数据库驱动程序。
如果您已经有一个数据库,那么该驱动程序可能是最简单的。 You can use the session:table
Artisan command 生成用于保存会话数据的数据库迁移。提交该迁移,相应地更新您的 config/session.php
,重新部署,然后 运行 您的迁移。
我怀疑 cookie 驱动程序也可以工作。基本上,您可以使用除文件驱动程序(或玩具阵列驱动程序)之外的任何东西。
我有一个 Laravel 应用程序在我的本地主机上运行良好,但是当我将它部署到 Heroku 云上时,出现以下错误,
ErrorException: file_put_contents(/tmp/build_a3cd0b04/storage/framework/sessions/YZFia5zZhnq2Lz2jZmdD9uZKjiQUU9KnMmRU0oad): Failed to open stream: No such file or directory
我试过更改存储文件夹的权限、清除缓存等,但没有任何效果。有什么想法吗?
您似乎在使用 the file driver. That isn't a very good choice on Heroku due to its ephemeral filesystem。它不会水平扩展并且会话会不可预测地丢失(每当您的 dyno 重新启动时,每天至少发生一次)。
我建议使用 Redis、Memcached 或数据库驱动程序。
如果您已经有一个数据库,那么该驱动程序可能是最简单的。 You can use the session:table
Artisan command 生成用于保存会话数据的数据库迁移。提交该迁移,相应地更新您的 config/session.php
,重新部署,然后 运行 您的迁移。
我怀疑 cookie 驱动程序也可以工作。基本上,您可以使用除文件驱动程序(或玩具阵列驱动程序)之外的任何东西。