ThinkPHP 安装与入门完整教程
ThinkPHP 是一个开源的、快速、简单的面向对象的轻量级 PHP 开发框架,遵循 Apache2.0 协议发布,它使用面向对象的开发结构和 MVC 模式,让 Web 应用开发更简单、更快速。

本教程将带你一步步完成 ThinkPHP 8.x 版本的安装和配置。
第一步:环境准备
在开始之前,请确保你的开发环境满足 ThinkPHP 的基本要求。
PHP 环境
ThinkPHP 8.x 需要 PHP 8.0 或更高版本,你可以通过命令行检查你的 PHP 版本:
php -v
如果版本低于 8.0,请先升级你的 PHP 环境。

PHP 扩展
ThinkPHP 需要一些核心的 PHP 扩展才能正常运行,请确保以下扩展已安装并启用:
php-fpm(推荐用于 Web 服务器)pdo&pdo_mysql(用于数据库连接)mbstring(用于多字节字符串处理)curl(用于网络请求)json(JSON 数据处理)fileinfo(用于文件类型检测)
你可以通过 php -m 命令来查看已安装的扩展。
Web 服务器
- Nginx (推荐): 配置简单,性能优秀。
- Apache: 传统选择,配置也很成熟。
数据库
- MySQL 5.7+ 或 MariaDB 10.2+ (ThinkPHP 主要使用 PDO 进行数据库操作,因此也支持其他兼容的数据库)。
开发工具
- 代码编辑器: VS Code, PhpStorm, Sublime Text 等。
- 包管理器: Composer,这是 PHP 项目的依赖管理工具,安装 ThinkPHP 必须使用 Composer。
第二步:安装 Composer
如果你还没有安装 Composer,请务必先完成这一步。
-
下载 Composer 安装脚本 打开终端(Windows 下是 CMD 或 PowerShell,macOS/Linux 下是 Terminal),运行以下命令:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" -
运行安装脚本
php composer-setup.php
-
移动 Composer 到全局路径
- Windows: 将
composer.phar文件移动到你的 PHP 安装目录下的php.exe同级目录,然后将该目录添加到系统的PATH环境变量中。 - macOS / Linux: 运行以下命令,它会自动将 Composer 移动到
/usr/local/bin目录下,使其在全局可用。sudo mv composer.phar /usr/local/bin/composer
- Windows: 将
-
验证安装 在终端中输入以下命令,如果看到 Composer 的版本信息,说明安装成功。
composer --version
第三步:使用 Composer 创建 ThinkPHP 项目
ThinkPHP 官方提供了 Composer 包,我们可以用它来快速创建一个标准的项目骨架。
-
进入你的 Web 根目录 通常这是你 Web 服务器配置的网站主目录,
- Nginx:
/usr/share/nginx/html - Apache:
/var/www/html - 本地开发:
D:/www或/home/www
- Nginx:
-
运行安装命令 在终端中,执行以下命令来创建一个名为
myapp的新项目:composer create-project topthink/think myapp
topthink/think: 这是 ThinkPHP 框架在 Packagist (PHP 的包仓库) 上的官方包名。myapp: 你想创建的项目文件夹名称,你可以自定义它。
-
等待安装完成 Composer 会自动下载 ThinkPHP 框架本身以及所有必需的依赖包,这个过程可能需要几分钟,具体取决于你的网络速度。
第四步:配置 Web 服务器
创建好项目后,你需要配置 Web 服务器,让它能够正确地访问你的 ThinkPHP 项目,这里分别提供 Nginx 和 Apache 的配置示例。
Nginx 配置
在 Nginx 的配置文件中(通常在 /etc/nginx/sites-available/ 目录下),添加一个 server 块:
server {
listen 80;
server_name your_domain.com; # 替换成你的域名或 IP 地址
root /path/to/your/myapp/public; # 指向项目的 public 目录
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; # 指向你的 php-fpm 地址和端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
关键点:
root必须指向项目的public目录,而不是项目根目录,这是 ThinkPHP 的安全入口。try_files指令是实现 URL 重写的关键,它会将所有非文件请求转发给index.php处理。
配置完成后,重载 Nginx 配置:
sudo nginx -s reload
Apache 配置
-
启用
mod_rewrite模块 在终端中运行:sudo a2enmod rewrite
然后重启 Apache:
sudo systemctl restart apache2
-
创建或修改
.htaccess文件 ThinkPHP 已经在public目录下提供了一个.htaccess文件,内容如下:<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] </IfModule>这个文件的作用和 Nginx 的
try_files类似,用于将 URL 重写。 -
配置 Apache 的虚拟主机 在 Apache 的配置文件中(通常在
/etc/apache2/sites-available/目录下),添加一个VirtualHost块:<VirtualHost *:80> ServerAdmin webmaster@your_domain.com DocumentRoot /path/to/your/myapp/public # 指向项目的 public 目录 ServerName your_domain.com # 替换成你的域名或 IP 地址 <Directory /path/to/your/myapp/public> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>关键点:
DocumentRoot必须指向public目录。<Directory>块中的AllowOverride All是允许.htaccess文件生效的关键。
配置完成后,启用站点并重启 Apache:
sudo a2ensite your_site.conf # 假设配置文件名为 your_site.conf sudo systemctl restart apache2
第五步:配置数据库和访问项目
Web 服务器已经配置好了,我们需要配置数据库连接信息。
-
创建数据库 登录到你的 MySQL/MariaDB,为你的新项目创建一个数据库:
CREATE DATABASE thinkphp CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-
配置数据库连接 打 ThinkPHP 项目的根目录
/myapp,找到.env文件,这个文件用于存放环境变量,包括数据库配置。[APP] DEBUG = true [DATABASE] TYPE = mysql HOSTNAME = 127.0.0.1 DATABASE = thinkphp # 替换成你刚刚创建的数据库名 USERNAME = root # 替换成你的数据库用户名 PASSWORD = # 替换成你的数据库密码 HOSTPORT = 3306 CHARSET = utf8mb4 DEBUG = true
修改上述配置,使其与你的数据库信息一致。
-
访问项目 打开你的浏览器,访问你配置的域名或 IP 地址。
- 如果一切正常,你应该能看到 ThinkPHP 欢迎页面,页面标题为 "ThinkPHP 8.0"。
- 如果看到错误页面,请检查:
- Web 服务器是否指向了
public目录。 .env文件中的数据库配置是否正确。- PHP 的
pdo_mysql扩展是否已启用。
- Web 服务器是否指向了
第六步:项目结构初探
成功运行后,简单了解一下项目的核心目录结构,这对你后续开发至关重要:
myapp/
├── app/ # 应用目录
│ ├── controller/ # 控制器目录
│ ├── model/ # 模型目录
│ └── view/ # 视图目录
├── config/ # 配置文件目录
├── extend/ # 扩展类库目录
├── public/ # Web 可访问目录(入口文件)
├── route/ # 路由定义目录
├── runtime/ # 应用的运行时目录(日志、缓存等)
├── vendor/ # Composer 依赖目录
├── .env # 环境配置文件
├── composer.json # Composer 配置文件
└── think # 命令行工具入口文件
恭喜你!你已经成功地安装并运行了你的第一个 ThinkPHP 项目,接下来的步骤就是学习 ThinkPHP 的核心概念,如:
- 路由: 如何定义 URL 和控制器方法的映射关系。
- 控制器: 如何处理用户请求并返回响应。
- 模型: 如何与数据库进行交互。
- 视图: 如何渲染数据并展示给用户。
ThinkPHP 的官方文档写得非常详尽,是深入学习最好的资源,祝你好运!
