ThinkPHP在Windows上怎么部署_ThinkPHPWindows部署介绍【解答】

2次阅读

thinkphpwindows部署成功的关键是:public目录必须设为web根目录、php版本需匹配框架要求(如tp5.0.x用php7.2–7.4,tp6.0.x用php7.4或8.0)、伪静态规则必须生效,三者缺一不可,否则导致404或白屏。

ThinkPHP在Windows上怎么部署_ThinkPHPWindows部署介绍【解答】

ThinkPHP 在 Windows 上部署不难,但成败关键在 public 目录是否被正确设为 Web 根目录、PHP 版本是否匹配框架要求、以及伪静态规则有没有生效——三者缺一不可,错一个就 404 或白屏。

确认 PHP 版本和 ThinkPHP 版本是否兼容

不同 ThinkPHP 版本对 PHP 有硬性要求,强行混搭会直接报错(比如 Parse Error: syntax error 或启动时提示 class not found):

  • ThinkPHP 5.0.x 要求 PHP >= 5.4.0,但实际建议用 PHP 7.2–7.4(NTS 版),避免 8.0+ 的废弃函数报错
  • ThinkPHP 6.0.x 要求 PHP >= 7.1.0,推荐 PHP 7.4 或 8.0(注意:TP6.0.6 不完全兼容 PHP 8.1+ 的严格类型推导)
  • php -vphp --ini 确认当前 CLI 使用的 PHP 版本和配置文件路径,别被集成环境里多个 PHP 版本搞混

Web 服务器必须指向 public 目录,不是项目根目录

这是最常踩的坑:把整个 ThinkPHP 项目(含 appconfigvendor)直接丢进 htdocswww,结果敏感配置文件(如 .env)被直接暴露,或路由全失效。

  • XAMPP/WampServer:把项目复制到 D:xampphtdocsmyapp 后,浏览器必须访问 http://localhost/myapp/public/,不能访问 /myapp/
  • iis/nginx:网站「物理路径」必须设置为 C:inetpubwwwrootmyapppublic,而不是 ...myapp
  • apache 用户若想省掉 /public/,需改 httpd.conf 或使用 .htaccess 重写,但 Windows 下 Apache + mod_rewrite 支持不稳定,不建议折腾

Nginx/IIS 必须配好伪静态,否则除首页外全 404

ThinkPHP 6 默认用 PATHINFO 模式(如 /index.php/user/login),但 Windows 下 Nginx 或 IIS 不开重写规则,/user/login 这种地址根本找不到文件。

立即学习PHP免费学习笔记(深入)”;

  • Nginx 配置中 location / 块内必须加这段(注意路径要和你的 root 一致):
    if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; }
  • IIS 需安装 URL Rewrite 模块,然后在站点根目录放 web.config,内容包含匹配 ^(.*)$ 并重写到 index.php?s={R:1} 的规则
  • 如果用的是 ThinkPHP 自带的 public/index.php 入口,别动它;改 public/.htaccess 对 Windows 无效,那是 Apache 用的

真正卡住人的往往不是“怎么装”,而是“为什么明明文件都在却打不开”。多看一眼 phpinfo() 输出里的 Loaded Configuration File,再检查一遍 Web 根目录是不是落到了 public 里面——这两个动作花 30 秒,能省下两小时瞎调。

text=ZqhQzanResources