【小白专用24.5.30已验证】Composer安装php框架thinkPHP6的安装教程
一、框架介绍
1、框架简介和版本选择
Thinkphp是一种基于php的开源web应用程序开发框架ThinkPHP框架,是免费开源的、轻量级的、简单快速且敏捷的php框架。你可以免费使用TP框架,甚至可以将你的项目商用;
ThinkPHP8.0 是目前框架正式版的最新版本,本教程采用的是最常用且稳定的TP6.0版本。
ThinkPHP6.0 环境要求 PHP 版本是 7.2.5+以上,不支持5.1的无缝升级。
此处本人使用的是Apache24来部署web服务:【开启thinkPHP6安装前,请安装php,Apache24】
【小白专用24.5.26已验证】windows 11 安装PHP8.3 +Apache2.4_win11下如何安装win+apache+php环境-CSDN博客
二、安装步骤
2.1下载composer
Composer是一个PHP的依赖管理工具,可以用于管理项目中的PHP库和包的依赖关系。它可以帮助开发人员轻松地安装、更新和卸载项目所需的各种依赖库。Composer还可以自动解决依赖冲突问题,并且可以根据项目需要自动加载所需的库文件。使用Composer可以更好地组织和管理PHP项目的代码和依赖关系。
TP6.0版本开始,必须通过Composer方式进行安装和更新,所以你无法通过Git下载安装。
下载网
Composer (getcomposer.org)
下载步骤如下



下载完成之后双击安装程序进行安装








查看composer是否安装
测试是否安装成功打开命令提示符按win+r键,然后输入cmd就可以打开,再输入composer,回车出现下面的提示就成功了

确定composer安装好:
2.2安装 ThinkPHP6
现在,先启用服务器环境,测试本地 Web 环境是否正常【本人使用的是Apache24来部署web服务】;

在php.ini文件中启用了相应的扩展。找到php.ini文件,然后找到这2行,确保前面没有分号(;)注释符号,不然安装过程会出现问题(在文章末尾已展示出来);
extension=fileinfo
extension=zip
extension=gd
1.如果你是第一次安装的话,在命令行下面,切换到你的WEB根目录下面:

windows的cmd
当前目录切换到根目录
cd \
切换磁盘盘符
C:\>d:

【技巧】

2.切换到指定目录,执行下载Thinkphp6命令。然后等待下载完成就可以了,文件下载与网速相关,慢的需要等一会。(安装的路径可以提前换到自己需要安装的路径,后面最后的 tp6,这个名字可以根据自己的需要自己取,是新建个 tp6 目录,可改名,这个目录就是我们后面会经常提到的应用根目录。
composer create-project topthink/think tp6
create-project: 是composer中的项目创建命令topthink/think: ThinkPHP的组件包tp6: 是当前的项目目录(如果没有创建, 该命令会自动创建的),执行过程的截图如下所示



7.cd到tp6,然后输入:php think run即可运行成功

查看当前安装的tp6版本
cd到tp6,然后输入:php think version即可运行成功
4. 浏览器访问测试是否部署成功
启动成功后,我们在浏览器中输入127.0.0.1:8081/tp6/public/查看即可,出现正常的thinkphp访问界面为成功!恭喜你,现在已经完成ThinkPHP6.0的安装!下图说明tp6部署成功,如此,ThinkPHP6.0 已经帮我们将域名自动部署到 public 里了。接下来就可以配置框架的文件了。

【本次使用的是Apache24来部署web服务,将网站访问目录改为tp6下面的public目录,就可以通过http://localhost:8081直接访问啦!】
如果 80 端口没有被占用的情况下,使用如下命令直接访问 http://localhost;
如果想修改端口的话 使用命令php think run -p 端口号。

三、安装成功后 目录结构
- 6.0 版本目录结构的主要变化是核心框架纳入
vendor目录,然后原来的application目录变成app目录。 - 安装后的目录结构就是一个单应用模式
www WEB部署目录(或者子目录)
├─app 应用目录
│ ├─controller 控制器目录
│ ├─model 模型目录
│ ├─view 视图目录
│ ├─ ... 更多类库目录
│ │
│ ├─BaseController.php 默认基础控制器类
│ ├─ExceptionHandle.php 应用异常定义文件
│ ├─common.php 全局公共函数文件
│ ├─middleware.php 全局中间件定义文件
│ ├─provider.php 服务提供定义文件
│ ├─Request.php 应用请求对象
│ └─event.php 全局事件定义文件
│
├─config 配置目录
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─console.php 控制台配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─filesystem.php 文件磁盘配置
│ ├─lang.php 多语言配置
│ ├─log.php 日志配置
│ ├─middleware.php 中间件配置
│ ├─route.php URL和路由配置
│ ├─session.php Session配置
│ ├─trace.php Trace配置
│ └─view.php 视图配置
│
├─view 视图目录
├─route 路由定义目录
│ ├─route.php 路由定义文件
│ └─ ...
│
├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─extend 扩展类库目录
├─runtime 应用的运行时目录(可写,可定制)
├─vendor Composer类库目录
├─.example.env 环境变量示例文件
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
└─think 命令行入口文件
ThinkPHP6 核心目录vendor目录

四、视图安装
视图功能由\think\View类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展。如果需要使用thinkTemplate模板引擎,需要安装think-view扩展(该扩展会自动安装think-template依赖库)
该扩展跟tp6安装多应用扩展一样,需要安装think-template(命令:composer require topthink/think-view),切记一定要在项目根目录进行安装!
【小白专用 已验证24.5.31】ThinkPHP6 视图的安装及模板篇之传参和渲染-CSDN博客
五、模板渲染和变量赋值
在安装好think-view后,我们就可以使用控制器来将不同的请求转到不同的视图了,并且可以传递一些参数过去。比如在原有的index.php控制器中,修改对应的一些方法,然后返回不同的视图,(最常用的是 view::fetch() view::assign() )。
【小白专用 已验证24.5.31】ThinkPHP6 视图的安装及模板篇之传参和渲染-CSDN博客
安装和更新命令所在的目录是不同的,更新必须在你的应用根目录下面执行,更新Thinkphp6核心,必须先切换到 tp6 根目录
update topthink/framework
更新操作会删除thinkphp目录重新下载安装新版本,但不会影响app目录,因此不要在核心框架目录添加任何应用代码和类库。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
【小白专用24.5.26已验证】windows 11 安装PHP8.3 +Apache2.4_win11下如何安装win+apache+php环境-CSDN博客
【小白专用24.5.26 已验证】VSCode下载和安装与配置PHP开发环境(详细版)-CSDN博客
安装过程遇到问题

报错解释:
这个错误表明你在使用Composer(PHP的依赖管理工具)尝试安装ThinkPHP6框架时,下载topthink/think包失败了。原因是ZIP扩展没有启用。Composer在安装依赖时可以使用ZIP扩展来解压缩包,如果ZIP扩展没有启用,则无法解压缩下载的文件。
解决方法:
在Windows上,你需要确保在php.ini文件中启用了相应的扩展。
找到php.ini文件,然后找到extension=zip这一行,确保前面没有分号(;)注释符号。
修改完php.ini后,重启你的Web服务器,如Apache或Nginx,以使更改生效。
再次运行Composer安装命令,如composer create-project topthink/think your_project_name,以检查问题是否已解决。





相关文章:
【小白专用24.5.30已验证】Composer安装php框架thinkPHP6的安装教程
一、框架介绍 1、框架简介和版本选择 Thinkphp是一种基于php的开源web应用程序开发框架ThinkPHP框架,是免费开源的、轻量级的、简单快速且敏捷的php框架。你可以免费使用TP框架,甚至可以将你的项目商用; ThinkPHP8.0 是目前框架正式版的最新版…...
ch4网络层---计算机网络期末复习(持续更新中)
网络层概述 将分组从发送方主机传送到接收方主机 发送方将运输层数据段封装成分组 接收方将分组解封装后将数据段递交给运输层网络层协议存在于每台主机和路由器上 路由器检查所有经过它的IP分组的分组头 注意路由器只有3层(网络层、链路层、物理层) 网络层提供的服务 一…...
数据库(12)——DQL聚合查询
常见的聚合函数 将一列数据作为一个整体,进行纵向计算。 函数功能count统计数量max最大值min最小值avg平均值sum求和 语法 SELECT 聚合函数 (字段列表)FROM 表名; 示例 这是我们的原始表: 求人物总数 select count(id) from in…...
MYSQL四大操作——查!查!查!
目录 简洁版: 详解版: SQL通用语法: 分类: 1. DDL —库 1.1 查询: 1.2 创建: 1.3 删除 1.4 使用库 2. DDL—表 2.1 查询 2.1.1 查询当前库的所有表: 2.1.2 查询表结构 : 2.1.…...
Linux静态库与动态库加载
了解库: 关于库相比大家之前肯定使用过,比如C/C里面的标准库,STL里面的各种库,我们在调用STL里的容器时都需要使用库,那么库到底是什么呢? 库的本质就是可执行程序的"半成品" 我们先来回顾一下代…...
Whisper-AT:抗噪语音识别模型(Whisper)实现通用音频事件标记(Audio Tagger)
本文介绍一个统一音频标记(Audio Tagger)和语音识别(ASR)的模型:Whisper-AT,通过冻结Whisper的主干,并在其之上训练一个轻量级的音频标记模型。Whisper-AT在额外计算成本不到1%的情况下…...
K8s:Pod初识
Pod Pod是k8s处理的最基本单元。容器本身不会直接分配到主机上,封装为Pod对象,是由一个或多个关系紧密的容器构成。她们共享 IPC、Network、和UTS namespace pod的特征 包含多个共享IPC、Network和UTC namespace的容器,可直接通过loaclhos…...
HCIP-Datacom-ARST自选题库__MAC【14道题】
一、单选题 1.缺省情况下,以下哪种安全MAC地址类型在设备重启后表项会丢失? 黑洞MAC地址 Sticky MAC地址 安全动态MAC地址 安全静态MAC地址 2.华为交换机MAC地址表中的动态sticky MAC地址的默认老化时间是多少秒? 300 不会老化 400 500 3.华为交换机MA…...
Go基础编程 - 03 - init函数、main函数、_(下划线)
目录 1. init 函数2. main 函数3. init 函数与 main 函数异同4. _ (下划线)示例 1. init 函数 Go语言中,init 函数用于包(package)的初始化。具有以下特征: 1. init 函数用于程序执行前包的初始化,如初始化变量等。2…...
【TensorFlow深度学习】LeNet-5卷积神经网络实战分析
LeNet-5卷积神经网络实战分析 LeNet-5卷积神经网络实战分析:从经典模型到现代实践LeNet-5的历史背景LeNet-5网络架构实战代码解析实战分析结论 LeNet-5卷积神经网络实战分析:从经典模型到现代实践 在深度学习的历程中,LeNet-5无疑是一座里程…...
错误发生在尝试创建一个基于有限元方法的功能空间时
问题: index cell.index(#直接使用从0开始的索引if0<1ndex<10: #正集流体 subdomains_x[cell,index(] 1 fem1 /usr/bin/python3.8 /home/wy/PycharmProjects/pythonProject2/fem1.pyUnknown ufl object type FiniteElementTraceback (aost recent call last)…...
【八股】Hibernate和JPA:理解它们的关系
在Java开发中,持久化框架是至关重要的工具,它们帮助开发者将Java对象与关系数据库中的数据进行映射和管理。Hibernate和JPA(Java Persistence API)是两个广泛使用的持久化框架。那么,Hibernate和JPA之间到底是什么关系…...
C++类型参数技术以及常见的类型擦除容器
文章目录 一、类型擦除的作用二、常见的类型擦除容器1.std::any2.std::function3.std::shared_ptr\<void\>和 std::unique_ptr\<void\>4.总结 三、实现一个any参考 类型擦除(Type Erasure)是一种编程技术,通过它可以在运行时存储…...
SpringBoot如何缓存方法返回值?
Why? 为什么要对方法的返回值进行缓存呢? 简单来说是为了提升后端程序的性能和提高前端程序的访问速度。减小对db和后端应用程序的压力。 一般而言,缓存的内容都是不经常变化的,或者轻微变化对于前端应用程序是可以容忍的。 否…...
C#的web项目ASP.NET
添加实体类和控制器类 using System; using System.Collections.Generic; using System.Linq; using System.Web;namespace WebApplication1.Models {public class Company{public string companyCode { get; set; }public string companyName { get; set; }public string com…...
Spring MVC 源码分析之 DispatcherServlet#getHandlerAdapter 方法
前言: 前面我们分析了 Spring MVC 的工作流程源码,其核心是 DispatcherServlet#doDispatch 方法,我们前面分析了获取 Handler 的方法 DispatcherServlet#getHandler 方法,本篇我们重点分析一下获取当前请求的适配器 HandlerAdapt…...
假设检验学习笔记
1. 假设检验的基本概念 1.1. 原假设(零假设) 对总体的分布所作的假设用表示,并称为原假设或零假设 在总体分布类型已知的情况下,仅仅涉及总体分布中未知参数的统计假设,称为参数假设 在总体分布类型未知的情况下&#…...
vue3 watch学习
watch的侦听数据源类型 watch的第一个参数为侦听数据源,有4种"数据源": ref(包括计算属性) reactive(响应式对象) getter函数 多个数据源组成的数组。 //ref const xref(0)//单个ref watch(x,(newX)>{console.…...
推荐的Pytest插件
推荐的Pytest插件 Pytest的插件生态系统非常丰富,以下是一些特别推荐的Pytest插件: pytest-sugar 这个插件改进了Pytest的默认输出,添加了进度条,并立即显示失败的测试。它不需要额外配置,只需安装即可享受更漂亮、更…...
C语言 | Leetcode C语言题解之第124题二叉树中的最大路径和
题目: 题解: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ int max; int dfs(struct TreeNode* root){if(!root) return 0;int left dfs(root->left…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

