推荐wamp 3.3+(默认开启opcache、右键切换php版本直观),需启用mbstring/openssl/pdo_mysql扩展;apache须用alias将url映射至public/目录并启用mod_rewrite,windows下避免shell路径解析问题。

用XAMPP还是WAMP?ThinkPHP对PHP版本有硬性要求
ThinkPHP 6.x 要求 PHP ≥ 7.2.5(推荐 8.0+),且必须启用 mbstring、openssl、pdo_mysql(或 pdo_sqlite)等扩展。XAMPP 8.2+ 和 WAMP 3.3+ 都能满足,但 XAMPP 默认禁用 php_opcache.dll,而 ThinkPHP CLI 命令(如 php think)在无 OPcache 时启动略慢;WAMP 则默认开启,且右键切换 PHP 版本更直观。不建议用旧版 WAMP 2.x 或 XAMPP 7.4 以下——它们的 curl 扩展在 Windows 下常因 SSL 证书路径缺失报 cURL error 60。
实操建议:
- 下载 WAMP 3.3.0(64-bit)或 XAMPP 8.2.12,安装时勾选「Add to PATH」
- 安装后打开 PHP 配置页(WAMP 点托盘图标 → PHP → php.ini),确认以下行未被注释:
extension=mbstring<br>extension=openssl<br>extension=pdo_mysql
- 若用 XAMPP,还需手动取消
;opcache.enable=0的注释,并设为opcache.enable=1
public/ 目录不能直接放 webroot?Apache 路径映射要绕过入口判断
ThinkPHP 强制所有请求经 public/index.php 入口,但默认 Apache 配置把整个项目根目录当 DocumentRoot,导致访问 http://localhost/myapp/ 会暴露 app/、config/ 等敏感目录。不能简单把 DocumentRoot 改成 public/——那样会导致静态资源(如 public/static/)路径错乱,且 php think route:list 等命令依赖项目根目录结构。
正确做法是用 Apache 的 Alias + <directory></directory> 组合,保留项目根为 DocumentRoot,仅将 URL 路径映射到 public/:
<virtualhost><br> ServerName tp6.local<br> DocumentRoot "D:/www/myapp"<br><directory><br> AllowOverride None<br> Require all denied<br></directory><br> Alias / "D:/www/myapp/public/"<br><directory><br> AllowOverride All<br> Require all granted<br></directory><br></virtualhost>
然后修改 hosts 文件添加 127.0.0.1 tp6.local,重启 Apache。这样访问 http://tp6.local/ 实际加载的是 public/,但 CLI 命令和 IDE 调试仍以项目根为准。
Windows 下 vendor/autoload.php 加载失败?Composer 的路径分隔符陷阱
执行 php think 报错 Warning: require(D:wwwmyappendorutoload.php): failed to open stream,常见于用 Git Bash 或 PowerShell 运行命令,而 Composer 安装时用了 Windows 原生命令行(cmd)。原因是 Composer 在 composer.json 中写入的自动加载路径用了反斜杠 ,但某些 Shell 解析时误作转义符。
验证方式:进入项目根目录,运行 php -r "echo __DIR__;",看输出是否含双反斜杠(如 D:\www\myapp);再检查 vendor/autoload.php 开头是否有 require 'D:wwwmyappendorcomposer/autoload_real.php'; —— 若是单反斜杠且当前 Shell 不兼容,就会失败。
解决方法:
- 统一用 cmd 或 Windows Terminal 运行所有
php和composer命令 - 重装依赖:
composer install --no-cache(强制重新生成 autoload 文件) - 或临时修复:编辑
vendor/autoload.php,把路径中的全部替换为/(如D:/www/myapp/vendor/composer/...)
路由无法访问或 404?.htaccess 在 Windows Apache 下需显式启用 mod_rewrite
ThinkPHP 的伪静态路由(如 http://tp6.local/index/index)依赖 Apache 的 mod_rewrite 模块和 .htaccess 规则。Windows 下该模块默认不加载,且 Apache 配置中 AllowOverride 若为 None,.htaccess 将被完全忽略。
检查与启用步骤:
- 打开 Apache 配置文件
httpd.conf(WAMP 在bin/apache/conf/,XAMPP 在apache/conf/) - 取消注释这一行:
LoadModule rewrite_module modules/mod_rewrite.so - 找到
<directory></directory>区块(或对应 DocumentRoot 的<directory></directory>),确保包含:AllowOverride All<br>Require all granted
- 重启 Apache 后,测试
public/.htaccess是否生效:在其中加一行Redirect 302 /test.html /index.html,访问http://tp6.local/test.html应跳转
如果仍 404,检查 ThinkPHP 的 config/app.php 中 'url_route_must' => true 是否开启——开启后未定义的路由直接 404,而非 fallback 到默认行为。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











