系统安装指南(技术版)
本文档专供有技术基础的运维人员查阅。一、环境要求Linux 系统环境仅支持 Linux 系统,不支持 Windows。需安装 supervisor 软件包。配置 supervisor (参考文档)。确保打开 rpc 访问服务(supervisorctl 的 serverurl),码科系统将通...
更新于 2024年4月10日
本文档专供有技术基础的运维人员查阅。
一、环境要求
Linux 系统环境
仅支持 Linux 系统,不支持 Windows。
需安装 supervisor 软件包。
配置 supervisor (参考文档)。
确保打开 rpc 访问服务(supervisorctl 的 serverurl),码科系统将通过 rpc 控制进程。
参考以下配置:
如果使用非 9001 端口,请在码科系统后端根目录下的 .env 文件中配置:
其中 NAME 是 supervisor 守护的进程名,默认是 make-swoole 。当同一服务器/容器部署多套系统时,应配置使用不同的进程名称。
添加 swoole 的守护进程,配置参考:
注意,这个启动用户 user,必须确保 php-fpm 对其产生的文件有操作权限。
将 command 命令中的 /var/www/html/ 替换为码科系统后端源码根目录的绝对路径。
必须在部署码科系统后端源码之后,才能配置 swoole 守护进程。
配置好后启动 supervisor 守护即可。
Web 环境
- Nginx 1.16.x 或以上版本(不支持 Apache 等)
- PHP 7.4.x (不支持其他版本)
- MySQL 5.7~8.0 / MariaDB 10.x
- Redis 5.x~7.x
- Node 16.x
PHP 环境
函数:
- proc_open
扩展(未指定版本的表示不限制版本):
- fileinfo
- redis
- swoole 4.8.x 版本
- swoole loader 3.0.8 版本 (PHP 7.4 NTS,点击此处下载)
- json
- mysqli
- iconv
- zlib
- openssl
- zip
- imagick
二、代码部署
本系统管理后台采用前后端分离开发,一般而言,本系统需两个站点,一个用于部署 PHP 后端接口(以下简称“后端”),另一个用于部署后台前端界面(以下简称“后台”)。
1. 后端
1) 站点
新建一个站点部署后端程序。
站点 Nginx 伪静态配置如下(注意,若自定义了swoole 端口,需将配置中的 9501改为自定义的 swoole 端口):
其余的 Nginx v-host 配置根据自己需要编写。
必须启用 SSL。
站点运行目录(document root)设为 <站点根目录>/public 。
2) 数据库
新建数据库,要求字符集为 utf8mb4。
3) 安装
访问 后端域名/install 进行后端安装。
系统会自动检查环境是否符合要求。
填写数据库、Redis、端口、管理员账号等配置。
系统会根据所填配置自动完成安装。
2. 后台
后台的部署分两种,一是自动部署,即访问安装界面填写配置,由程序自动下载后台安装包并解压,自动配置完成;二是手动部署,即自行将后台安装包解压至后台站定并修改配置。
两种部署方式二选一即可。
1) 站点
新建一个站点部署后台程序。
站点 Nginx 伪静态配置如下:
2) 自动部署
自动部署是指,后台安装包由后端系统自动解压至指定位置。
自动部署以来 swoole 进程进行,系统会自动启动 swoole,若无法启动或启动异常,将无法执行部署。
访问 后端域名/install/admin 进行安装。
系统会自动检测环境是否准备就绪。
填写由官方下发的授权码和对应的后端授权域名,系统会自动下载最新版本的后台安装包。
填写后台域名和后台站点根目录的绝对路径后,系统会根据所填配置自动解压后台安装包并完成相关配置。
3) 手动部署
手动部署是指,手动将后台安装包解压至后台站点根目录。
将安装包解压后,编辑 static/config.json 文件:
其中需要修改的部分:
- domain:后端域名,注意http/https
- title:后台标题
修改完成后访问 <后台域名> 查看是否部署成功。
部署完成后,在后端站点根目录添加 admin.install.lock 空白文件,以防他人访问安装程序。
三、关于系统配置文件
系统安装完成后,会在后端站点根目录生成一个名为 .env 的文件,该文件即为系统配置文件。
系统在自动部署后台站点时,会自动将系统授权码和后台路径写入配置,方便后期升级。如果选择了手动部署后台,则需要手动编辑配置文件,填写系统授权码和后台路径。
完整的配置示例如下,尤其注意SWOOLE和RPC的端口是否与现有端口冲突:
配置说明(示例中有文字说明的不再赘述):
- APP_DEBUG 是否开启调试模式,0=否,1=是
- UPDATE_CHANNEL 更新通道,可选:alpha、beta、stable
- [JWT]
- TTL 登录身份过期时间,单位:秒
- [ADMIN]
- LOCAL 后台部署方式,0=本地部署,1=远程部署,远程部署是指后端和后台站点不在同一台服务器或同一个容器中
继续阅读