使用 EbCommands 部署 Laravel Aws Elastic-Beanstalk
Posted
技术标签:
【中文标题】使用 EbCommands 部署 Laravel Aws Elastic-Beanstalk【英文标题】:Laravel Aws Elastic-Beanstalk deployment with EbCommands 【发布时间】:2019-09-25 11:32:00 【问题描述】:我熟悉使用 laravel 应用程序到 Aws Elastic Beanstalk 的部署,但是今天在尝试部署另一个应用程序 (Laravel 5.7) 时,我收到了这个烦人的异常错误:
InvalidArgumentException - 请提供有效的缓存路径。
我已经完成了研究,并且尝试了通常的建议 = 在存储下创建文件夹并授予权限,但没有成功。 Aws 甚至告诉我存在以下文件夹:storage/framework/[sessions, views, cache]
在部署期间,一切都运行良好,复制了 env 文件,迁移和种子已完成,然后部署因此错误而停止。
这是我在部署 (ebCommands) 时运行的命令:
commands:
01_update_composer:
command: export HOME=/root && export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update 1.0.0-alpha11
option_settings:
aws:elasticbeanstalk:container:php:phpini:
document_root: /public
memory_limit: 512M
users:
ec2-user:
groups:
- webapp
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/02_configure_environment_file.sh":
mode: "000777"
owner: root
group: root
content: |
#!/bin/bash
if [ ! -f /var/www/html/.env ] ; then
cp /var/www/html/.env.example /var/www/html/.env
fi
php /var/www/html/artisan migrate:refresh
php /var/www/html/artisan db:seed
mkdir -p /var/www/html/storage/framework/cache/data
mkdir -p /var/www/html/storage/framework/sessions
mkdir -p /var/www/html/storage/framework/views
mkdir -p /var/www/html/storage/app
mkdir -p /var/www/html/storage/logs
mkdir -p /var/www/html/bootstrap/cache
chmod -R 775 /var/www/html/bootstrap/cache
chmod -R 775 /var/www/html/storage
chmod -R 775 /var/www/html/storage/logs
php /var/www/html/artisan config:clear
php /var/www/html/artisan cache:clear
php /var/www/html/artisan config:cache
它应该部署并且我应该能够看到我的网站。 相反,AWS 日志显示: InvalidArgumentException :请提供有效的缓存路径。 该网站显示相同的错误消息。
我在网上尝试了各种方法,但我被卡住了! 这不是我部署的第一个 laravel 应用程序。 我使用 CodePipeline 和 github 自动进行部署。
对我来说,问题可能是权限问题...
谢谢!!
【问题讨论】:
【参考方案1】:该错误通常发生在文档根目录中缺少存储文件夹时。您需要确保存在以下文件夹:
./存储/框架/缓存 ./存储/框架/会话 ./存储/框架/视图
【讨论】:
以上是关于使用 EbCommands 部署 Laravel Aws Elastic-Beanstalk的主要内容,如果未能解决你的问题,请参考以下文章
在 mcrypt 扩展上使用 GitlabCI 部署 Laravel 失败
AWS Beanstalk 使用 Grunt 任务部署 Laravel