Laravel artisan 没有读取所有环境变量
Laravel artisan not reading all environment vars
我在 AWS Opsworks 服务器上安装了 Laravel 5.2 应用程序。 Web 浏览器界面完美运行。但是,当我尝试在命令行 (php artisan xxxxxxx) 运行 Artisan 命令时,我不断收到 mysql 连接错误 [2002]。所以我把范围缩小到环境变量。我们在 .env 文件中定义了 40 个变量。我首先在我的 artisan 脚本中添加了一些简单的 echo 语句来回显数据库连接变量。它只会回应数据库名称。主机、用户和通行证都是空白的。我想也许 laravel 只是很聪明,而不是为了安全而附和那些。所以我决定在 artisan 脚本中回显所有环境变量。其中只有 2 个会回声。其余为空白。为什么 laravel 的 artisan 无法读取 .env 中的大部分环境变量?
问题归结为 AWS 如何实施数据库连接变量。当 AWS 部署时,它将该信息放入 apache 配置中。但是,由于 CLI 的性质,图中没有 Apache。因此,我们必须创建一个最后运行的厨师食谱,并从 apache 配置中获取新编写的环境变量并创建 .env 文件。它相当多余,但现在似乎工作正常。
我在 AWS Opsworks 服务器上安装了 Laravel 5.2 应用程序。 Web 浏览器界面完美运行。但是,当我尝试在命令行 (php artisan xxxxxxx) 运行 Artisan 命令时,我不断收到 mysql 连接错误 [2002]。所以我把范围缩小到环境变量。我们在 .env 文件中定义了 40 个变量。我首先在我的 artisan 脚本中添加了一些简单的 echo 语句来回显数据库连接变量。它只会回应数据库名称。主机、用户和通行证都是空白的。我想也许 laravel 只是很聪明,而不是为了安全而附和那些。所以我决定在 artisan 脚本中回显所有环境变量。其中只有 2 个会回声。其余为空白。为什么 laravel 的 artisan 无法读取 .env 中的大部分环境变量?
问题归结为 AWS 如何实施数据库连接变量。当 AWS 部署时,它将该信息放入 apache 配置中。但是,由于 CLI 的性质,图中没有 Apache。因此,我们必须创建一个最后运行的厨师食谱,并从 apache 配置中获取新编写的环境变量并创建 .env 文件。它相当多余,但现在似乎工作正常。