ThinkPHP是一款基于PHP开发的开源Web应用开发框架,以Apache2协议开源,完全免费商用。ThinkPHP诞生于2006年,是国内最流行的PHP开发框架之一,以简洁易用、性能优异、文档完善著称。ThinkPHP遵循MVC设计模式,支持ORM、路由、中间件、模板引擎、缓存、验证、多语言等完整功能,适合开发各类Web应用、企业官网、管理后台、API接口、小程序后端。
核心优势:完全开源免费(Apache2协议)、简洁易用的MVC架构、丰富的功能组件(ORM、路由、中间件、缓存、验证等)、出色的性能、完善的中文文档、活跃的国内社区、支持Composer包管理、支持Swoole协程、易于学习上手。ThinkPHP是国内PHP开发者首选的开发框架。
环境要求
- 操作系统:Linux(Ubuntu/Debian/CentOS)、Windows、macOS
- Web服务器:Nginx / Apache / IIS
- PHP版本:PHP 7.2.5+ / PHP 8.0+(ThinkPHP 6.x推荐PHP 7.4+/8.0+;ThinkPHP 8推荐PHP 8.0+)
- 数据库:MySQL 5.6+ / MariaDB / PostgreSQL / SQLite / SQL Server
- 内存:最低256MB,推荐512MB以上
- 磁盘:至少200MB可用空间
- PHP扩展:mbstring、json、openssl、pdo、pdo_mysql、tokenizer、xml、curl、gd(可选)
- Composer:PHP包管理器(必需,用于安装ThinkPHP和扩展)
安装教程
步骤1:安装PHP和Composer
# Ubuntu/Debian
apt update
apt install -y php php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-gd php-zip php-json composer
php --version
composer --version
Windows环境:下载安装PHP(https://windows.php.net/download),安装Composer(https://getcomposer.org/download/),确保php和composer命令可用。
步骤2:创建ThinkPHP项目
cd /www/wwwroot
composer create-project topthink/think yourdomain.com
cd yourdomain.com
# 查看版本
php think version
这会创建一个标准的ThinkPHP 6/8项目结构,包含app、config、public、route、runtime、vendor等目录。
步骤3:配置数据库
编辑 config/database.php 文件:
return [
'default' => env('db.driver', 'mysql'),
'connections' => [
'mysql' => [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'thinkphp',
'username' => 'thinkphp_user',
'password' => 'your_strong_password',
'hostport' => '3306',
'charset' => 'utf8mb4',
'prefix' => 'tp_',
'deploy' => 0,
'rw_separate' => false,
],
],
];
创建数据库:
mysql -u root -p
CREATE DATABASE thinkphp DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'thinkphp_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON thinkphp.* TO 'thinkphp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
步骤4:配置目录权限
chown -R www:www /www/wwwroot/yourdomain.com
chmod -R 755 /www/wwwroot/yourdomain.com
chmod -R 777 /www/wwwroot/yourdomain.com/runtime
chmod -R 777 /www/wwwroot/yourdomain.com/public/uploads
步骤5:Nginx配置
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /www/wwwroot/yourdomain.com/public;
index index.php index.html;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
}
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-cgi-80.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
# 禁止访问敏感目录
location ~ /\.ht {
deny all;
}
}
注意:网站根目录必须指向public目录,这是ThinkPHP的安全设计。
步骤6:测试运行
本地开发可以使用内置服务器:
php think run
访问 http://localhost:8000 即可看到ThinkPHP欢迎页。
生产环境访问 http://yourdomain.com,应显示ThinkPHP默认欢迎页面。
步骤7:创建控制器和路由(基础开发示例)
创建控制器 app/controller/Index.php:
配置路由 route/app.php:
use think\facade\Route;
Route::get('/', 'Index/index');
Route::get('hello/:name', 'Index/hello');
访问 http://yourdomain.com 显示"Hello, ThinkPHP!",访问 http://yourdomain.com/hello/World 显示"Hello, World!"。
步骤8:数据库操作示例
创建模型 app/model/User.php:
在控制器中使用模型:
order('id', 'desc')
->paginate(10);
return json($users);
}
}
Windows环境安装
- 下载安装PHP for Windows(https://windows.php.net/download),选择Thread Safe版本,配置php.ini启用必要扩展
- 安装Composer(https://getcomposer.org/download/)
- 安装MySQL或使用phpStudy集成环境
- 打开命令提示符,执行:
composer create-project topthink/think yourproject - 进入项目目录,配置config/database.php数据库连接
- 执行
php think run启动内置服务器 - 浏览器访问http://localhost:8000
宝塔面板安装(推荐)
- 安装宝塔面板,登录后一键安装LNMP环境(Nginx + MySQL + PHP 8.0)
- 在软件商店安装Composer(或通过终端安装)
- 在终端执行:
cd /www/wwwroot && composer create-project topthink/think yourdomain.com - 配置config/database.php数据库连接信息
- 设置runtime目录权限为755,所有者为www
- 在宝塔面板添加站点,网站根目录指向项目的public目录
- 配置伪静态规则(参考上方Nginx配置)
- 配置SSL证书,访问域名测试运行
服务器配置建议
- PHP版本:推荐PHP 8.0+(ThinkPHP 8要求PHP 8.0+)
- PHP内存限制:
memory_limit = 128M(推荐256M) - 上传文件大小:
upload_max_filesize = 32M,post_max_size = 32M - 最大执行时间:
max_execution_time = 60 - 网站根目录必须指向public目录,确保安全
- 启用OPcache加速
- 配置Redis缓存(ThinkPHP内置支持,在config/cache.php中配置)
- 生产环境关闭调试模式:在.env文件中设置APP_DEBUG=false
- 配置日志轮转,避免runtime/log目录过大
- 定期备份数据库和项目代码
- 使用Composer管理依赖,定期执行
composer update更新安全补丁 - 高并发场景可使用Swoole协程加速(需安装think-swoole扩展)
常见问题
Q:composer create-project失败或速度慢?
A:配置国内Composer镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。确保PHP版本满足要求,必要的PHP扩展已安装。
Q:访问网站显示空白或500错误?
A:检查runtime目录权限是否可写,检查PHP错误日志,在.env文件中设置APP_DEBUG=true开启调试模式查看详细错误,检查Nginx配置中root是否指向public目录。
Q:数据库连接失败?
A:检查config/database.php中的数据库配置,确认数据库服务运行,确认数据库用户权限正确,确认表前缀设置一致。可在.env文件中覆盖数据库配置。
Q:路由不生效或404?
A:检查Nginx/Apache伪静态配置是否正确,检查route目录下的路由文件是否正确定义,确认URL模式为rewrite,检查控制器和方法是否存在且命名空间正确。
Q:ThinkPHP 6和8有什么区别?
A:ThinkPHP 6基于PHP 7.2+,采用多应用模式,稳定成熟;ThinkPHP 8基于PHP 8.0+,性能更优,支持更多PHP 8特性(注解、联合类型等),是未来发展方向。新项目推荐使用ThinkPHP 8,老项目可继续使用6.x。
Q:如何部署到生产环境?
A:执行composer install --no-dev --optimize-autoloader安装生产依赖,设置APP_DEBUG=false,配置Nginx指向public目录,设置runtime目录权限,配置SSL证书,使用PM2或systemd管理队列/定时任务。
官方网址
ThinkPHP官网地址:https://www.thinkphp.cn