安装部署

ThinkAdmin 是一个基于 ThinkPHP 6 & 8 开发的强大后台管理框架,专为简化后台管理流程而设计。为了保证最佳性能,该框架要求运行在 PHP7.1 或更高版本的环境中。在使用之前,请确保已经正确安装了 Composer 包管理工具,因为 ThinkAdmin 的依赖管理依赖于 Composer。 系统默认支持 SqliteMySqlSqlServer 三种数据库。如果您需要使用其他数据库,可能需要进行额外的配置或处理。我们建议您在开始开发之前,仔细阅读 ThinkAdmin 的数据库连接文档,以确保正确配置您的数据库连接。

重要提示ThinkAdmin 已与 ThinkPHP8 框架全面兼容。在 PHP8 环境中执行 Composer update 指令,系统会自动升级到 ThinkPHP8 框架。为了确保顺利升级核心框架,我们强烈建议您在开发过程中遵循 ThinkPHP 的编码标准。这样可以确保您的代码与新框架的更新保持兼容,并减少潜在的升级问题。 为了保持系统的可升级性,我们建议您保留原系统的 PaaS(Platform as a Service)模块。官方会不定期发布插件更新,以修复系统漏洞或增加新功能。这些插件通常会增强系统的安全性或提供额外的功能模块。通过保留 PaaS 模块,您可以轻松应用这些更新,而不必重新安装或修改整个系统。

请注意,admin 模块中的显示内容是可以修改的。您可以通过调整相关参数或使用主题定制功能来个性化展示。这使得您可以轻松地定制后台界面,以满足您的具体需求,而无需重新构建整个模块。

运行环境检查

  • 执行 php -v,是否可以看到 PHP 的版本信息?
  • 执行 composer -v 是否可以看到 Composer 的版本信息?
  • 执行 composer self-updateComposer 更新到最新版本!
$ 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,在 LinuxMacOS 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 用户)或控制台( LinuxMac 用户)并执行如下命令:

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. 通过源码安装:( 默认安装 adminwechat 两个模块 )

如果需要安装演示系统的旧版本 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

如果希望安装其他插件,可以跳转到 插件生态 查看详情。

数据库配置及安装

  1. 创建空的数据库,其中 Sqlite 不需要创建;
  2. 将数据库配置到 config/database.php 文件;

注意:数据库参数修改,除了要修改连接参数,还需要切换 default 默认连接名称,如下面的 mysqlsqlite 等。

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 官方的文档,建议使用 宝塔面板 管理服务器。

NginxApache 服务方式运行配置如下:

配置网站路径

宝塔集成环境,直接选择 MVCThinkPHP 默认规则

配置伪静态规则
  • Worker 内存方式运行

以插件 ThinkPlugsWorker 运行以获得更高性能,注意项目端口与 Worker 配置的运行端口需要一致,具体配置如下:

配置启动参数

配置绑定域名
  • Apache 服务器配置
  • httpd.conf 配置文件中加载了mod_rewrite.so模块
  • AllowOverride NoneNone改为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>
Last Updated:
Contributors: 邹景立