Laravel 使用 .env 管理環境敏感配置,配合 config/ 目錄下的設定檔實現環境隔離。
config/*.php 透過 env('KEY', 'default') 讀取# .env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=secret
// config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
mysql -u root -p CREATE DATABASE laravel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
| 檔案 | 用途 |
|---|---|
| app.php | 應用核心設定 (時區、語言、提供者、別名) |
| auth.php | 認證守衛、提供者、密碼重設 |
| broadcasting.php | 廣播驅動 (Pusher、Log、Redis) |
| cache.php | 快取存儲 (File、Redis、Memcached、Array) |
| database.php | 資料庫連線、遷移、種子 |
| filesystems.php | 檔案系統 (Local、S3、FTP、SFTP) |
| mail.php | 郵件驅動 (SMTP、Mailgun、Sendmail、Log) |
| queue.php | 佇列連線 (Sync、Database、Redis、Beanstalkd) |
| session.php | Session 驅動、生命週期、Cookie 設定 |
| view.php | 視圖路徑、編譯快取 |
config/*.php 僅定義結構與預設值config('key') 讀取,而非直接 env() (快取後 env() 失效)掌握 .env 與 config 協作機制,是 Laravel 多環境部署的基石。