安装部署
ThinkAdmin 是一个基于 ThinkPHP 6 & 8 开发的强大后台管理框架,专为简化后台管理流程而设计。为了保证最佳性能,该框架要求运行在 PHP7.1 或更高版本的环境中。在使用之前,请确保已经正确安装了 Composer 包管理工具,因为 ThinkAdmin 的依赖管理依赖于 Composer。 系统默认支持 Sqlite、MySql 和 SqlServer 三种数据库。如果您需要使用其他数据库,可能需要进行额外的配置或处理。我们建议您在开始开发之前,仔细阅读 ThinkAdmin 的数据库连接文档,以确保正确配置您的数据库连接。
重要提示:ThinkAdmin 已与 ThinkPHP8 框架全面兼容。在 PHP8 环境中执行 Composer update 指令,系统会自动升级到 ThinkPHP8 框架。为了确保顺利升级核心框架,我们强烈建议您在开发过程中遵循 ThinkPHP 的编码标准。这样可以确保您的代码与新框架的更新保持兼容,并减少潜在的升级问题。 为了保持系统的可升级性,我们建议您保留原系统的 PaaS(Platform as a Service)模块。官方会不定期发布插件更新,以修复系统漏洞或增加新功能。这些插件通常会增强系统的安全性或提供额外的功能模块。通过保留 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>