使用 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的主要内容,如果未能解决你的问题,请参考以下文章

如何使用谷歌云数据库部署 Laravel 8 谷歌云运行

在 mcrypt 扩展上使用 GitlabCI 部署 Laravel 失败

AWS Beanstalk 使用 Grunt 任务部署 Laravel

如何部署laravel宅基地环境

如何快速使用 Heroku 来部署你的 Laravel 应用

使用docker lnmp镜像包部署搭建laravel项目