15国语言/区块链交易所/秒合约/申购/矿机/带文档搭建教程

带简洁的文档搭建教程

交易所总后台/接口服务器
pc端api接口,h5端api接口,后台管理,websocket信息推送系统

后台管理地址
域名/admin 账号:admin 密码:admin

软件架构
Laravel6 + Mysql。

环境要求
git 用户版本管理,部署和升级必要工具
PHP 7.3 +
Mysql 5.7+ ,数据库
Redis redis需要开启过期键监听功能

在配置文件中的配置 notify-keyspace-events Ex 重启

composer 用于安装依赖
PHP扩展
gmp PHP扩展,注意和 PHP 版本相同。
mongodb PHP扩展,注意和 PHP 版本相同。
ext-zip 扩展,注意和 PHP 版本相同。
ext-json 扩展,注意和 PHP 版本相同。
ext-fileinfo 扩展,注意和 PHP 版本相同。
swoole扩展,
pecl install swoole 执行安装

PHP函数(需要进入php配置文件取消禁用)
putenv 获取env配置信息
proc_open (函数说明:执行一个命令,并且打开用来输入/输出的文件指针) composer 安装时需要
pcntl_signal (函数说明:安装一个信号处理器) 启用workman需要
pcntl_fork (函数说明:在当前金正当前未知产生分支) 启动workerman需要
pcntl_wait (等待或返回fork的子进程状态) 启动workerman需要
pcntl_signal_dispath (调用等待信号的处理器) 启动workerman需要
pcntl_alarm() 启动workerman需要
symlink 创建静态资源软连接需要
exec tinker需要

 

部署

进入server项目目录执行 composer install 进行依赖的安装 (如果已有vendor不用执行)

在项目根目录中,复制 .env.example 为一份新的,并重命名为.env
该文件储存了系统的配置信息

在.env 中配置Mysql数据库信息以及redis信息
mysql与redis是必须配置的信息,其余的workerman、接口域名配置、邮件配置、短信配置可滞后配置

进入项目根目录后执行php artisan storage:link 创建资源目录软连接

你可能使用的web服务器为 nginx 以及 apache,无论怎样,应用的起始路径在 /public 目录,请确保指向正确,同时程序的根目录权限应该调整为:拥有者和你的 Web 服务器运行用户一致,且根目录权限为 755。
修改web服务器的伪静态规则为:
location / {
try_files $uri $uri/ /index.php?$args;
}
此时可以通过访问 http://your_domain 来使用 交易所管理后台。管理员账号密码为:admin / admin。
启动websocket行情服务
启动主程序

php artisan workerman option start –d
php artisan workerman swap start –d
启动websocket行情采集工具
./start.sh
行情采集
cd public/exchange
sh wss_start.sh &

./wss_stop.sh

swap采集
cd public/swap
sh swap_start.sh &

配置nginx 设置协议升级(如果是ws则需要将https改为http) 在站点nginx配置文件增加以下配置

#在nginx内添加该段内容

location /ws1 {
proxy_pass https://127.0.0.1:2346;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}
location /ws2 {
proxy_pass https://127.0.0.1:2348;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}
常见问题

killall -9 php 解决无法workerman关闭的问题
开启守护进程 (使用supervisor管理器)

php artisan queue:work redis –queue=triggerStrategy

合约平仓? triggerStrategy

php artisan queue:work redis –queue=HandleFlatPosition

HandleFlatPosition

php artisan queue:work redis –queue=handleContractEntrust

handleContractEntrust

php artisan queue:work redis –queue=handleEntrust

合约队列 handleEntrust

php artisan queue:work redis –queue=UdunDeposit

U盾队列 UdunDeposit

php artisan option:delivery 期权交割 option_delivery

php artisan flatPosition

平仓机器人 flatPosition

php artisan contractDealRobot

合约交易成交机器人 contractDealRobot

php artisan BdealRobot

币币交易买单处理机器人 BdealRobot

php artisan SdealRobot

币币交易卖单处理机器人 SdealRobot

添加corntab任务(用于执行定时任务)
corntab任务是laravel的任务调度(定时任务)对系统的依赖,如果未开启这项配置将会导致,期权场景不能创建、异常期权任务不能取消、USD-CNY汇率不能更新、申购活动无法进行 在命令行终端执行
crontab -e -u www 增加这一行配置 (命令中的目录需要根据自己的环境进行修改)

* * * * * /www/server/php/73/bin/php /www/wwwroot/exchange/server/artisan schedule:run >> /dev/null 2>&1

这行命令是起 每分钟调度一次 php artisan schedule:run 命令 但使用的是绝对路径

常见问题
安装完成访问网址提示权限问题。 chown -R www:www ./ 将文件夹权限设置给www用户即可
期权订单无法交割。 打开redis的过期键监听功能 notify-keyspace-events “Ex”

遇坑:
1) 清理缓存后(php artisan cache:clear),查看server.digifinex.me/bootstrap/cache文件是否有exchange_symbols字段

期权正常每1分钟每隔1分钟执行—2021-12-22 17:45:03执行 | 编辑 | 日志 | 删除
(可以运行宝塔计划任务,每分钟执行)
cd /www/wwwroot/后台文件地址
php artisan createOptionScene

举例:
cd /www/wwwroot/server.digifinex.me
php artisan createOptionScene

1) 前端实名认证图片没法上传的问题

php artisan storage:link
接口中url修改成当前域名

server.digifinex.me/bootstrap/cache下
https://server.digifinex.me改爲对应域名

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。