# hsing-dev-new **Repository Path**: jackchow4589/hsing-dev-new ## Basic Information - **Project Name**: hsing-dev-new - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-24 - **Last Updated**: 2024-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - [使用说明](#使用说明) - [1.目录介绍](#1目录介绍) - [2.构建镜像、启动容器](#2构建镜像启动容器) - [3.初始化数据](#3初始化数据) - [**至此,环境已经初始化好**](#至此环境已经初始化好) - [4.开发须知](#4开发须知) - [4.1 改nginx配置](#41-改nginx配置) - [4.2 新增deamon脚本](#42-新增deamon脚本) - [4.3 上线固定时间跑的脚本](#43-上线固定时间跑的脚本) - [4.4 查看日志](#44-查看日志) - [5. 一些测试例子](#5-一些测试例子) # 使用说明 ***注:只适用于欢歌项目,请根据根据pc平台来选择分支,目前只测试完成了mac平台下的。另自行安装docker和docker-compose*** ***版本要求,docker: 20.10.11, docker-compose: v2.2.1*** ## 1.目录介绍 ``` project │ README.md | | .env (docker-compose相关变量) | │ docker-compose.yml │ └───17sing │ │ php (act域名下的http接口,对应服务器的/home/17sing/php,需要软链代码) │ │ web (admin, activity, admin等项目均放到此目录) │ └───cron │ └───crontabs │ │ root (单次运行crontab脚本在此配置,长驻的在supervisor配置) │ └───log (crontab的日志) │ └───data (对应服务器上的/data/17sing目录,业务接口和脚本的日志均在此目录) │ └───php-fpm │ └───php-cli │ └───db │ └───mysql │ └───data (mysql数据文件) │ └───Dockerfile │ └───initdb_sql (初始化db的Sql) │ └───my.cnf (mysql配置文件) │ └───nginx │ └───conf.d (各域名的nginx配置文件,重要) │ └───Dockerfile (镜像构建) │ └───log (各域名的access_log,error_log) │ └───nginx.conf │ └───php │ └───config (php-fpm配置) │ └───Dockerfile (镜像构建) │ └───log (access_log和error_log) │ └───redis │ └───data (rdb/aof文件) │ └───Dockerfile (镜像构建) │ └───redis.conf (配置文件) | └───ssdb (目前歌友圈以及社区模块关注信息流用到) │ └───data │ └───meta │ └───ssdb.conf (配置文件) │ └───supervisor (长驻脚本就用supervisor管理,其它用crontab) │ └───conf.d (配置文件) │ │ activity.conf (活动相关) │ │ hsing.conf (各业务模块脚本,比如房间、作品) │ │ program.conf (php-fpm、cron服务拉起,勿改) │ └───log (supervisor服务日志) │ └───supervisord.conf │ └───xcache (活动代码有用到,对应服务器上的/usr/local/lib/hsing_lib/xcache) ``` ## 2.构建镜像、启动容器 在hsing-dev目录下执行:`docker-compose up -d` 启动成功后,docker ps查看status是不是up状态: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5d66f140b5af hsing-dev_redis "docker-entrypoint.s…" 24 seconds ago Up 23 seconds 0.0.0.0:6379->6379/tcp redis f1abdd448e73 hsing-dev_nginx "nginx -g 'daemon of…" 22 minutes ago Up 22 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx bf57d3d4f40e hsing-dev_php "docker-php-entrypoi…" 22 minutes ago Up 22 minutes 9000/tcp, 0.0.0.0:9501->9501/tcp php ac9d80a666f6 hsing-dev_mysql "docker-entrypoint.s…" 22 minutes ago Up 22 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql ``` docker-compose配置文件.env感兴趣的可以了解下,也可以直接略过,如下: ``` PHP_VERSION=7.3 #各组件的版本配置 SWOOLE_VERSION=4.8.1 NGINX_VERSION=1.16.0 PHP_REDIS_VERSION=4.2.0 FRONT_NGINX_IP=172.19.0.3 #bridge网络配置,nginx/php FRONT_PHP_IP=172.19.0.2 FRONT_SUBNET=172.19.0.0/16 BACK_REDIS_IP=172.18.0.2 #bridge网络配置, php/mysql/redis/ssdb BACK_PHP_IP=172.18.0.4 BACK_MYSQL_IP=172.18.0.3 BACK_SSDB_IP=172.18.0.5 BACK_SUBNET=172.18.0.0/16 TIMEZONE="Asia/Shanghai" #时区相关 DOMAIN="17sing.tw" #业务域名,用于php容器的host配置 VI_DOMAIN="singnowapp.com" AR_DOMAIN="supervoice-app.com" IN_DOMAIN="singstarapp.com" ``` ## 3.初始化数据 * 放置对应的项目文件 所有的项目代码放在./17sing目录下,或者做软链。***一定要注意两个.env文件!!*** 目录格式如下: ``` 17sing │ .env (php的环境变量文件) │ └───php │ │ action │ │ conf │ │ config │ │ ... └───web └─── .env (业务用的运营后台环境变量) └─── admin.17sing.tw (旧的运营后台,活动在用) └─── webapp └─── admin (业务用的运营后台,切记要把环境变量文件设置) └─── admin.17sing.tw └─── webapp └─── www (官网) └─── activity.17sing.tw (台湾活动) └─── activity.gosingapp.com (中东活动) └─── activity.singnowapp.com (越南活动) └─── activity.newstarapp.com (印度活动) ``` * mysql * 本地连上mysql ` mysql -h127.0.0.1 -uroot -p123456` * 创建hsing用户 ` GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,RELOAD,PROCESS,REFERENCES,INDEX,ALTER,SHOW DATABASES,CREATE TEMPORARY TABLES,LOCK TABLES,EXECUTE,REPLICATION SLAVE,REPLICATION CLIENT,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,EVENT,TRIGGER ON *.* TO 'hsing'@'%' IDENTIFIED BY 'qazxsw21' WITH GRANT OPTION; ` * 导入数据 ` mysql -h127.0.0.1 -uhsing -pqazxsw21 < ./mysql/initdb_sql/db.sql ` * redis * 生成用户信息xcache ` cp ./xcache/init_uid.txt ./data/` `docker exec -it php php /home/17sing/php/crontab/xcache_util/tools/refresh_uinfo.php /data/17sing/init_uid.txt` * 生成全量房间信息rinfo `mysql -h127.0.0.1 -uhsing -pqazxsw21 -Dhsing_core -e "update kroom set create_time = now();"` **至此,环境已经初始化好** ------ ## 4.开发须知 ### 4.1 改nginx配置 文件所在目录 `cd ./nginx/conf.d` 修改完毕后检查语法 `docker exec -it nginx nginx -t` 更新配置 `docker exec -it nginx nginx -s reload` ### 4.2 新增deamon脚本 全部由supervisor管理,配置文件所在目录 `cd ./supervisor/conf.d` app功能相关的脚本,请编辑 hsing.conf, 例如: ``` [program:make_ktv_hotroom] command=php /home/17sing/php/crontab/make_ktv_hotroom.php numprocs=1 autostart=true autorestart=true user=root [program:make_all_roominfo] command=php /home/17sing/php/crontab/make_all_roominfo.php numprocs=1 autostart=true autorestart=true user=root ``` 活动相关的脚本,请编辑activity.conf, 例如: ``` [program:activityheart_proxy] command=php /home/17sing/web/activity.17sing.tw/crontab/activityheart_proxy.php numprocs=1 autostart=false autorestart=false user=root [program:activityheart_process] command=php /home/17sing/web/activity.17sing.tw/crontab/activityheart_process.php numprocs=1 autostart=false autorestart=false user=root ``` 编辑完成后更新: ``` docker exec -it php supervisorctl update ``` ### 4.3 上线固定时间跑的脚本 直接增加crontab条目: `vim ./cron/crontabs/root` 例如: ``` #xcache更新脚本 */1 * * * * bash /home/17sing/php/crontab/xcache_util/bin/monitor.sh xcache_msg_process.php key_xcache_uinfo */1 * * * * php /home/17sing/php/crontab/make_live_room.php > /dev/null 2>&1 & */1 * * * * php /home/17sing/php/crontab/make_dynamic_rec_room.php > /dev/null 2>&1 & ``` ### 4.4 查看日志 ``` - http接口: ./data/php-fpm/action - crontab脚本: ./data/php-fpm/action - nginx日志:./nginx/log - php-fpm日志:./php/log - 活动日志,以activity.17sing.tw好声音为例:./17sing/web/activity.17sing.tw/log/goodvoice_new ``` ## 5. 一些测试例子 域名要配置host, 127.0.0.1 * HTTP接口(GetMyselfInfo) ``` curl -H "host:act.17sing.tw" -v "http://127.0.0.1/index.php?authts=1636427038&authsign=a549237d3993c3d6e925a42943403bb7&uid=2085237&mver=2&token=javFIxghphWqn6xhef2WEgPOlX_KpdL-cFjF6OWjki9woAUPpzOoE6bFpfc6Tw9-2ggt3Z8fhy5ZWuCRKQQZwV7OQnH6WjNvHc9creubXIRVZsrsILzcPQWlB1Q5er83&action=GetMyselfInfo" ``` * 礼物列表 ``` http://t.act.17sing.tw/index.php?new=1&uid=2085237&action=GetNewGiftList&token=ifj0Mf5t09vX4sX_mzfjR-H4E0FdTIaDQzzPNLMl1m6jsLEaT61JREjVn2LXvpBQ_LxWazC473yBa-86_cE7ETPhtl0B7GRhXn0uwf2MQllM_6tdimZXT1WvXvG8LNJw ``` * 粉丝数 ``` http://t.act.17sing.tw/index.php?uid=2085237&mver=3&token=w0_O5PhxpPGAHw7RzFUXtJNLf5zuXv2JZptEfE3Najou3lnuWadA2554NgDB_FpaPjYTALIm7QfGwO3w39eebUINlyqW9ZLOJ7DR2l0QFX9oGjmF2y_B9U-oqs3Njghv&action=GetFanList ``` * 测脚本 产生事件 ``` redis-cli -n 2 publish sendKTVGift '{"event":"sendKTVGift","uid":100955,"qty":1,"type":"coin","gid":2238,"amount":5,"charm":50,"toUid":2085237,"roomid":100110,"ua":"hsing server","extra":{"bid":0,"popularity":20,"fid":0,"familyRoomId":0,"roomFid":0,"toFid":"1000015","live":0,"global":0,"pk":0,"playmode":0,"owner":2085237,"host":0,"ticket":5,"orgSpend":5,"hostRatio":{"isKolHost":false,"kolRatio":0},"familyLevel":"0","from_cplatform":"android","from_cversion":"7.17.0.8842","big_gift":"0","singer":2085237,"mic_uids":["2085237"],"flag":"0"},"time":1637218102,"app":"hsing","clientIp":"127.0.0.1"}' ``` * 活动相关 `http://activity.17sing.tw/static_html/goodvoice/202105/index.html` `http://activity.17sing.tw/goodvoice_new/info.php`