php app env,Laravel .env 多环境配置文件的使用

项目开发中,通常会有本地开发环境、内网测试环境、线上真实环境。这三种环境的配置通常都不尽相同,Laravel 可以通过环境变量  APP_ENV 的值来加载不同的 .env 配置文件。下面会介绍两种方法,分别是通过 Nginx 和 PHP-FPM 来设置 APP_ENV 环境变量的值。

方法一:修改 Nginx 配置文件设置 APP_ENV:

location = /index.php {

index index.php;

try_files $uri =404;

fastcgi_pass unix__tmp_php_cgi_sock;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param APP_ENV xxxx;

}

方法二:修改 PHP-FPM 配置文件设置 APP_ENV:

env[APP_ENV] = xxxx

上述两种方法只需二选一。重启 Nginx 和 PHP-FPM 服务,Laravel 框架就会自动选择加载项目根目录下的 .env.xxxx 配置文件,而不会去加载 .env 配置文件了。

通过 APP_ENV 环境变量值加载特定 .env 配置文件的 Laravel 源代码位于文件Illuminate/Foundation/Bootstrap/DetectEnvironment.php 中,摘录关键代码如下:

1 /**2 * Detect if a custom environment file matching the APP_ENV exists.3 *4 * @param \Illuminate\Contracts\Foundation\Application $app5 * @return void6 */

7 protected function checkForSpecificEnvironmentFile($app)8 {9 if (! env(‘APP_ENV‘)) {10 return;11 }12

13 $file = $app->environmentFile().‘.‘.env(‘APP_ENV‘);14

15 if (file_exists($app->environmentPath().‘/‘.$file)) {16 $app->loadEnvironmentFrom($file);17 }18 }

请注意:

当设置了 APP_ENV 环境变量时,当运行 Laravel 的 Aritsan 终端命令之前,比如迁移命令(./artisan migrate)、启动队列侦听器(./artisan queue:listen)等等,均需要在终端也导入 APP_ENV 环境变量。

$export APP_ENV=xxxx

$./artisan migrate

或者

$ APP_ENV=xxxx ./artisan migrate

当然,也可以选择在 ~/.bash_profile 或者 ~/.bashrc 中一劳永逸地设定好终端环境变量 APP_ENV 的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker 是一个开源的容器化平台,而 Laravel 是一个流行的 PHP 框架。通过使用 Docker,您可以轻松地在不同的环境中部署和运行 Laravel 应用程序。 要在 Docker 中部署 Laravel 应用程序,您可以按照以下步骤进行操作: 1. 安装 Docker:首先,您需要在您的机器上安装 Docker。您可以参考 Docker 官方文档以获取安装步骤。 2. 创建 Dockerfile:在您的 Laravel 项目根目录中创建一个名为 Dockerfile 的文件。Dockerfile 是一个文本文件,用于定义 Docker 镜像的构建步骤。您可以使用以下示例作为起点: ``` # 使用官方 PHP 镜像作为基础镜像 FROM php:7.4-cli # 安装所需的扩展和工具 RUN apt-get update && apt-get install -y \ git \ zip \ unzip \ && docker-php-ext-install pdo_mysql # 设置工作目录 WORKDIR /var/www/html # 复制项目文件到容器中 COPY . /var/www/html # 安装 Composer 依赖 RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN composer install --no-scripts --no-autoloader # 生成环境变量文件 RUN cp .env.example .env # 生成应用密钥 RUN php artisan key:generate # 设置容器启动时执行的命令 CMD php artisan serve --host=0.0.0.0 --port=8000 ``` 3. 构建 Docker 镜像:在终端中导航到 Dockerfile 所在的目录,并执行以下命令来构建 Docker 镜像: ``` docker build -t laravel-app . ``` 这将基于 Dockerfile 构建一个名为 laravel-app 的镜像。 4. 运行 Docker 容器:构建成功后,您可以使用以下命令来运行 Laravel 应用程序的 Docker 容器: ``` docker run -p 8000:8000 laravel-app ``` 这将在本地的 8000 端口上运行 Laravel 应用程序。 现在,您可以通过访问 http://localhost:8000 来访问您的 Laravel 应用程序。 请注意,上述步骤仅为示例,具体的配置可能因您的项目需求而有所不同。您可以根据自己的需要进行适当的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值