在容器化部署中,PHP dotenv 庫可以幫助您更輕松地管理環境變量
安裝 PHP dotenv 庫:
在您的項目中,使用 Composer 安裝 vlucas/phpdotenv
包:
composer require vlucas/phpdotenv
創建 .env
文件:
在項目根目錄下創建一個名為 .env
的文件,用于存儲環境變量。例如:
APP_ENV=production
APP_DEBUG=false
DB_HOST=mysql
DB_DATABASE=my_database
DB_USERNAME=my_user
DB_PASSWORD=my_password
加載環境變量:
在您的項目入口文件(例如 index.php
)中,引入并加載 .env
文件中的環境變量:
require 'vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
使用環境變量:
在您的項目中,您可以使用 getenv()
函數獲取環境變量的值。例如,從上面的 .env
文件中獲取數據庫配置:
$dbHost = getenv('DB_HOST');
$dbDatabase = getenv('DB_DATABASE');
$dbUsername = getenv('DB_USERNAME');
$dbPassword = getenv('DB_PASSWORD');
容器化部署:
當您將應用程序部署到容器時,您可以通過設置容器的環境變量來覆蓋 .env
文件中的默認值。這樣,您可以在不修改代碼的情況下,輕松地為不同的環境(開發、測試、生產等)提供不同的配置。
例如,在 Dockerfile 中設置環境變量:
ENV APP_ENV=production
ENV APP_DEBUG=false
ENV DB_HOST=mysql
ENV DB_DATABASE=my_database
ENV DB_USERNAME=my_user
ENV DB_PASSWORD=my_password
或者,在 Docker Compose 文件中設置環境變量:
services:
app:
build: .
environment:
- APP_ENV=production
- APP_DEBUG=false
- DB_HOST=mysql
- DB_DATABASE=my_database
- DB_USERNAME=my_user
- DB_PASSWORD=my_password
通過這種方式,您可以在容器化部署中使用 PHP dotenv 庫來管理和使用環境變量,從而提高應用程序的靈活性和安全性。