📦 安装部署
ThinkAdmin 是一个基于 ThinkPHP 6 & 8 开发的强大后台管理框架,专为简化后台管理流程而设计。
🚀 框架特点
核心特性
- 基于 ThinkPHP: 基于 ThinkPHP 6 & 8 框架开发
- 后台管理: 专为简化后台管理流程而设计
- 功能丰富: 提供丰富的后台管理功能
- 易于扩展: 支持灵活的扩展和定制
技术优势
- 现代化: 采用现代化的开发技术
- 高性能: 提供高性能的运行效率
- 安全可靠: 注重安全性和可靠性
- 文档完善: 提供完善的开发文档
⚙️ 系统要求
基础要求
- PHP 版本: 7.1 或更高版本(推荐 PHP 8.0+)
- Composer: 必须安装 Composer 包管理工具
- 数据库: 支持 Sqlite、MySQL 和 SQL Server
- Web 服务器: Apache、Nginx 或 PHP 内置服务器
推荐配置
- PHP 版本: PHP 8.0 或更高版本
- 内存: 至少 512MB 内存
- 磁盘空间: 至少 100MB 可用空间
- 网络: 稳定的网络连接
⚠️ 重要提示
ThinkPHP 8 兼容性
- 全面兼容: ThinkAdmin 已与 ThinkPHP 8 框架全面兼容
- 自动升级: 在 PHP 8 环境中执行
composer update
指令,系统会自动升级到 ThinkPHP 8 框架 - 性能提升: ThinkPHP 8 提供更好的性能和功能
系统升级建议
- 保留模块: 建议保留原系统的 PaaS 模块
- 定期更新: 官方会不定期发布插件更新
- 安全修复: 及时修复系统漏洞
- 功能增强: 持续增加新功能
个性化定制
- 内容修改: admin 模块中的显示内容可以修改
- 参数调整: 可通过调整相关参数进行个性化
- 主题定制: 支持主题定制功能
- 界面优化: 可根据需求优化界面展示
运行环境检查
- 执行
php -v
,是否可以看到 PHP 的版本信息? - 执行
composer -v
是否可以看到 Composer 的版本信息? - 执行
composer self-update
将 Composer 更新到最新版本!
$ php -v
# 执行 php -v 结果如下为 PHP 8.1.10
> PHP 8.1.10 (cli) (built: Aug 30 2022 18:08:04) (NTS Visual C++ 2019 x64)
> Copyright (c) The PHP Group
> Zend Engine v4.1.10, Copyright (c) Zend Technologies
如果还没有安装 Composer,在 Linux 和 MacOS X 中可以运行如下命令:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
在 Windows 中,你需要下载 Composer-Setup.exe,并运行程序进行安装操作。
如果遇到任何问题或者想更深入地学习 Composer,请参考 Composer 文档(英文文档,中文文档)。
温馨提示: 目前国内大部分 Composer 代理镜像不全,使用以下命令移除代理。
// 移除代理镜像
composer config -g --unset repos.packagist
系统下载及安装
下载并进入 ThinkAdmin 目录,运行指令安装依赖组件。
打开命令行窗口( Windows 用户)或控制台( Linux 的 Mac 用户)并执行如下命令:
1. 通过 Composer 安装: ( 推荐方式,默认只安装 admin 模块 )
### 创建项目( 需要在英文目录下面执行 )
composer create-project zoujingli/thinkadmin
### 进入项目根目录
cd thinkadmin
### 数据库初始化并安装
### 默认使用 Sqlite 数据库,若使用其他数据库请修改配置后再执行
php think migrate:run
### 安装微信管理模块
composer require zoujingli/think-plugs-wechat
### 开启PHP内置WEB服务
### 默认后台登录账号及密码都是 admin
php think run --host 127.0.0.1
2. 通过源码安装:( 默认安装 admin、wechat 两个模块 )
如果需要安装演示系统的旧版本 data 模块代码,请跳转到 https://gitee.com/zoujingli/think-plugs-data
### 下载项目( 需要在英文目录下面执行 )
# git clone https://github.com/zoujingli/ThinkAdmin
git clone https://gitee.com/zoujingli/ThinkAdmin
### 进入项目根目录
cd ThinkAdmin
### 安装项目依赖组件
composer install --optimize-autoloader
### 数据库初始化并安装
### 默认使用 Sqlite 数据库,若使用其他数据库请修改配置后再执行
php think migrate:run
### 开启PHP内置WEB服务
### 默认后台登录账号及密码都是 admin
php think run --host 127.0.0.1
如果希望安装其他插件,可以跳转到 插件生态 查看详情。
数据库配置及安装
- 创建空的数据库,其中 Sqlite 不需要创建;
- 将数据库配置到 config/database.php 文件;
注意:数据库参数修改,除了要修改连接参数,还需要切换 default 默认连接名称,如下面的 mysql、sqlite 等。
return [
// 数据库类型
'default' => 'sqlite',
// 数据库连接参数
'connections' => [
'mysql' => [ /* 具体参数省略 */ ],
'sqlite' => [ /* 具体参数省略 */ ],
]
]
当前版本是 ThinkAdmin v6.1 ,不需要导入数据库 SQL
脚本,修改数据库配置后执行 php think migrate:run
即可;
注意:如果希望在 PgSQL 上运行,需要先将数据库安装到 MySQL 再使用工具同步到 PgSQL,再配置数据表 ID 主键自增。
运行 PHP 内置服务
本地开发可以直接使用 php -S
内置服务器,不需要配置完整的 Web
服务。
- 方式 1.
>$ php think run
// 以debug
方式运行(会显示CMD
界面及加载日志) - 方式 2.
>$ php think xadmin:queue webstart
// 以daemon
方式运行(不会显示CMD
界面) - 浏览器访问
http://127.0.0.1:8000
// 可以使用--port 端口号
指定服务端口号
默认账号及初始化
系统默认是没有配置文件存储规则,无法上传文件,需要进入后台配置。
- 1.登录并进入后台,默认账号及密码都为:
admin
- 2.进入后台 系统管理->系统参数配置,修改文件上传参数并保存。
- 3.初始化后建议修改系统参数,如:网站名称,版权信息,网站备案号等。
线上生产环境部署
生产环境部署参考 ThinkPHP 官方的文档,建议使用 宝塔面板 管理服务器。
以 Nginx 和 Apache 服务方式运行配置如下:
宝塔集成环境,直接选择 MVC
或 ThinkPHP
默认规则
- Worker 内存方式运行
以插件 ThinkPlugsWorker 运行以获得更高性能,注意项目端口与 Worker 配置的运行端口需要一致,具体配置如下:
- Apache 服务器配置
httpd.conf
配置文件中加载了mod_rewrite.so
模块AllowOverride None
将None
改为All
- 把下面的内容保存为
.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 服务器配置
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
- IIS 服务器管理
- 如果你的服务器环境支持
ISAPI_Rewrite
的话,可以配置httpd.ini
文件,添加下面的内容:RewriteRule (.*)$ /index\.php\?s=$1 [I]
- 在
IIS
的高版本下面可以配置web.Config
,在中间添加rewrite
节点:
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$"/>
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$"/>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php/{R:1}"/>
</rule>
</rules>
</rewrite>