将Laravel部署到Elastic Beanstalk时出现密码异常

时间:2017-12-15 19:01:45

标签: laravel amazon-web-services laravel-5 amazon-ec2 elastic-beanstalk

好的,我开始在这里失去理智。当我将我的应用程序部署到弹性beanstalk时,我收到此错误:

[2017-12-15 17:50:18] Tylercd100\LERN.CRITICAL: RuntimeException was thrown! The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths. 

要明确我部署我的应用程序源而没有安装依赖项并且没有设置APP_KEY,我将依赖项安装留给弹性beanstalk,它会在部署期间安装它们。

在我的aws .config文件中,我已经定义了部署命令,如下所示:

--- 
commands: 
  00init: 
    command: "sudo yum install gcc-c++"
  01init: 
    command: "rm -f amazon-elasticache-cluster-client.so"
  02init: 
    command: "wget https://s3.amazonaws.com/php-amazon-elasticache-cluster-client-7-1/amazon-elasticache-cluster-client.so"
  03init: 
    command: "sudo mv amazon-elasticache-cluster-client.so /usr/lib64/php/7.1/modules/"
  04init: 
    command: "echo \"extension=amazon-elasticache-cluster-client.so\" | sudo tee /etc/php-7.1.d/50-memcached.ini"
  05init: 
    command: "sudo /etc/init.d/httpd restart"
container_commands: 
  00permissions: 
    command: "find * -type d -print0 | xargs -0 chmod 0755"
  01permissions: 
    command: "find . -type f -print0 | xargs -0 chmod 0644"
  02permissions: 
    command: "chmod -R 775 storage bootstrap/cache"
  03cache: 
    command: "php artisan cache:clear"
  04key: 
    command: "php artisan key:generate"
  05cache: 
    command: "php artisan config:cache"
  06cache: 
    command: "php artisan route:cache"
  07optimize: 
    command: "php artisan optimize"

这些命令在部署到aws期间运行,没有任何错误。

当我直接在虚拟机上检查.env时,设置了APP_KEY,因为它应该考虑上面的命令。

然而我得到了密码错误。

1 个答案:

答案 0 :(得分:0)

假设您在信息中心的Elasticbeanstalk配置页面中设置了APP_KEY,我想指出两点。

1-当php artisan config:cachecontainer_commands中运行时,它将文件路径缓存为/var/app/ondeck/...,这在laravel尝试访问缓存的文件时会导致运行时错误。

2-当laravel无法访问APP_KEY文件中的.env值时,发生密码错误。如果APP_KEY=${APP_KEY}文件中存在.env之类的行,则这是导致错误的主要原因。您假设将从仪表板中进行的环境配置中读取APP_KEY值。但是,当commandscontainer_commands运行时,beanstalk尚未设置环境变量。通过在命令或文件中包含以下命令,您可以自行解决我的采购环境变量问题。

source /opt/elasticbeanstalk/support/envvars

例如

"/opt/elasticbeanstalk/hooks/appdeploy/post/91_config_cache.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      source /opt/elasticbeanstalk/support/envvars
      echo "Running php artisan config:cache"
      cd /var/app/current
      php artisan config:cache
      echo "Finished php artisan config:cache"