必须指定topthink/think:^6.1安装TP6,根目录指向public/,.env修改后需重启服务,伪静态需按Nginx/Apache分别配置,空白页等异常多因环境配置未生效。

phpEnv 里装 TP6 必须显式指定版本
直接跑 composer create-project topthink/think 极大概率拉到 TP5 或 TP8 dev 分支,不是你要的 TP6。TP6 的稳定分支是 ^6.1,必须写死:
composer create-project "topthink/think:^6.1" tp6-demo- Windows CMD 或 PowerShell 中执行前,确认当前目录是 phpEnv 的网站根目录(比如
D:\phpEnv\www),否则项目会建在错地方 - 装完检查
tp6-demo/composer.json里"topthink/framework"的 version 字段,应为类似"^6.1.0"—— 不是~5.1,也不是dev-main
站点根目录必须指向 public/,不是项目根目录
phpEnv 网站管理里填“根目录”时,填的是 tp6-demo/public,不是 tp6-demo。填错会导致 404 或直接暴露 .env、.env.example 文件,极其危险。
- Nginx 模式下,
root指令值必须是完整路径 +/public,例如root D:/phpEnv/www/tp6-demo/public; - Apache 模式下,确保
public/.htaccess存在且未被禁用(检查 phpEnv 的 Apache 配置中AllowOverride All是否启用) - 改完站点配置后,必须点 phpEnv 控制面板里的「重启 Web 服务」,不能只刷新浏览器
.env 文件不生效?先看权限和加载时机
TP6 启动时读取 .env 是单次行为,改完不重启进程就无效。常见失效场景:
-
.env文件放在tp6-demo/下,但没重命名:删掉.example.env后缀,确保文件名就是.env(Windows 资源管理器可能隐藏扩展名,用命令行dir /a确认) - 用
php think run启动开发服务器时,改了.env必须 Ctrl+C 终止再重跑,否则缓存旧变量 - 想验证是否加载成功,临时在
app/common.php顶部加一行:var_dump($_ENV['APP_DEBUG'] ?? 'not loaded');—— 输出false或true才算成功,not loaded就是没读到
伪静态(隐藏 index.php)要配对,Nginx 和 Apache 规则不同
phpEnv 内置的「URL 重写」功能选「thinkphp」能自动写规则,但只对 Nginx 生效;Apache 用户得手动改 public/.htaccess。
立即学习“PHP免费学习笔记(深入)”;
- Nginx:phpEnv 网站配置 → URL 重写 → 选「thinkphp」→ 保存 → 重启服务。规则本质是把所有非静态资源请求转发给
index.php?s=... - Apache:确认
public/.htaccess存在且内容含RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L];若仍 404,进 phpEnv 设置 → Apache → 修改httpd.conf,找到对应<directory></directory>块,把AllowOverride None改成AllowOverride All - 配完别忘了清浏览器缓存——301 重定向会缓存,改错一次后即使修正也可能继续跳转旧地址
.env 没生效、根目录设错、或伪静态规则没触发。动手前先跑一句 php -v && composer -v 确认环境干净,比事后查日志快得多。



















