Laravel 採用 .env 環境變量 + config/*.php 配置文件 雙層機制:敏感信息(密碼、API Key)放 .env,不入版本庫;通用結構放 config,入版本庫。
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:xxxx
APP_URL=https://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
// sqlite, pgsql, sqlsrv ...
],
'default' => env('DB_CONNECTION', 'mysql'),
env('KEY', 'default') 讀取 .env,第二參數為默認值(.env 缺失時生效)。'default' => env('DB_CONNECTION') 允許運行時切換數據庫連接。strict => false 關閉 MySQL 嚴格模式,兼容舊數據;新項目建議開啟並修正數據。mysql -u root -p
CREATE DATABASE laravel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
推薦 utf8mb4 支持 Emoji 與完整 Unicode。
| 文件 | 用途 |
|---|---|
| app.php | 應用名稱、時區、locale、providers、aliases |
| database.php | 數據庫連接配置 |
| cache.php | 緩存驅動、前綴、存儲路徑 |
| session.php | 驅動、生命周期、域、安全標記 |
| mail.php | 郵件驅動、發件人、加密 |
| filesystems.php | 本地/雲存儲磁盤配置 |
config('app.debug'); // true
config('database.connections.mysql.host'); // 127.0.0.1
env('DB_PASSWORD'); // 直接讀 .env(不推薦常規業務使用)
APP_ENV=local、APP_DEBUG=trueAPP_ENV=testing、APP_DEBUG=falseAPP_ENV=production、APP_DEBUG=false、APP_KEY 必須隨機生成Laravel 配置體系核心:.env 隔離環境差異 → config 統一結構定義 → env() 橋接兩者。正確使用可實現「代碼不變、配置隨環境變」,保障安全與可移植性。