ThinkPHP6.0环境变量配置核心是根目录下的.env文件,需按KEY=VALUE格式书写(无空格、不加引号),通过env()函数读取,支持多级键名与默认值,失效常见原因包括文件名错误、权限不足、OPcache未刷新及Web服务器未透传变量。

ThinkPHP6.0 的环境变量配置核心是 .env 文件,它必须放在项目根目录(与 vendor、app、public 同级),且框架只在启动初期自动加载一次。
创建并填写 .env 文件
安装后根目录下通常有 .example.env,直接重命名为 .env 即可。内容按 KEY=VALUE 格式书写,注意:
- 等号两侧不能有空格,例如
APP_DEBUG=true✅,APP_DEBUG = true❌ -
不要加引号,例如
DB_PASSWORD=123456✅,DB_PASSWORD="123456"❌ - 布尔值用
true、false或字符串"1"、"0","on"、"yes"无效 - 常见关键项示例:
DB_HOSTNAME=127.0.0.1
DB_DATABASE=thinkphp
DB_USERNAME=root
DB_PASSWORD=
APP_DEBUG=true
APP_ENV=dev
确保 .env 被正确读取
框架默认启用 .env 加载,但以下情况会导致失效:
- 文件名错误(如写成
env、.env.local或带多余后缀) - 文件权限问题导致 PHP 无法读取(Linux/macOS 下检查
cat .env是否可查看) - OPcache 开启且未刷新,旧缓存仍生效 → 执行
opcache_reset()或设置opcache.revalidate_freq=0 - Web 服务器(Nginx/Apache)未透传环境变量 → Nginx 需加
fastcgi_param APP_DEBUG $APP_DEBUG;,Apache 需确认PassEnv或SetEnv已启用
在代码中获取环境变量
推荐使用助手函数 env(),支持多级键名和默认值:
-
env('app_debug')→ 获取APP_DEBUG -
env('database.username')→ 获取DB_USERNAME(自动转大写下划线) -
env('cache.type', 'file')→ 读不到时返回默认值'file' -
env()(无参数)→ 返回全部环境变量数组
多环境适配(可选进阶)
TP6 本身不自动加载 .env.dev 等文件,但可通过 APP_ENV=dev 配合自定义逻辑实现:
- 在
bootstrap/app.php或public/index.php开头手动加载对应文件,例如:if ($env = env('APP_ENV', 'prod')) { App::loadEnv(ROOT_PATH . '.env.' . $env); } - 所有环境共用的变量写在主
.env,差异项覆盖到.env.dev等文件中 - 注意:多次调用
App::loadEnv()只有第一次生效
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











