在部署aws elasticbeanstalk之后,Laravel显示来自/ var / app / ondeck的错误

时间:2017-05-31 18:18:57

标签: amazon-web-services elastic-beanstalk laravel-5.4

使用AWS Elasticbeanstalk成功部署laravel 5.4应用程序后,Laravel在FileViewFinder异常中抛出InvalidArgumentException,当我访问我的根路径时,查看[index] 找不到。 / p>

这是堆栈跟踪的片段。

in FileViewFinder.php line 137

at FileViewFinder->findInPaths('index', array('/var/app/ondeck/resources/views')) in FileViewFinder.php line 79

at FileViewFinder->find('index') in Factory.php line 128

at Factory->make('index', array(), array()) in helpers.php line 914

at view('index') in HomeController.php line 24

正如您所看到的,Laravel尝试从/ var / app / ondeck中查找视图,据我所知,这是部署期间的临时位置,而不是在部署之后。我到处搜索,似乎无法找到类似的问题。

任何有关它的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在与之斗争之后,我设法使用部署后脚本 /opt/elasticbeanstalk/hooks/appdeploy/post/artisan_clear_cache.sh 来运行php artisan config:cache。 Laravel将视图路径缓存到指向ondeck目录,因此在部署之后需要清除缓存。不幸的是,这种方法没有记录。所以我就是这样解决的。

  1. 我必须创建包含post deploy hook的目录,因为默认情况下它不存在。正在运行mkdir /opt/elasticbeanstalk/hooks/appdeploy/post

  2. 我必须为Laravel设置写入存储的权限。正在运行chmod -R 755 /var/app/current/storage

  3. 最后,我必须将artisan命令放在.sh。

  4. 这样,脚本将在部署后自动运行并清除缓存。

    请注意,所有这些都必须在项目根目录的 .ebextensions 目录中的.config文件中完成。有关here

    的详细信息