{"id":18737286,"url":"https://github.com/zyprosoft/topicq-server","last_synced_at":"2025-04-12T19:32:21.936Z","repository":{"id":46730263,"uuid":"415542069","full_name":"zyprosoft/TopicQ-Server","owner":"zyprosoft","description":"TopicQ微社区的完整后端服务代码，基于Hyperf2.1框架开发","archived":false,"fork":false,"pushed_at":"2021-10-20T12:54:36.000Z","size":1892,"stargazers_count":23,"open_issues_count":1,"forks_count":13,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T14:03:01.518Z","etag":null,"topics":["hyperf"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zyprosoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-10T09:37:46.000Z","updated_at":"2025-02-20T06:50:54.000Z","dependencies_parsed_at":"2022-07-26T10:18:03.242Z","dependency_job_id":null,"html_url":"https://github.com/zyprosoft/TopicQ-Server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zyprosoft%2FTopicQ-Server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zyprosoft%2FTopicQ-Server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zyprosoft%2FTopicQ-Server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zyprosoft%2FTopicQ-Server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zyprosoft","download_url":"https://codeload.github.com/zyprosoft/TopicQ-Server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248621270,"owners_count":21134792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hyperf"],"created_at":"2024-11-07T15:24:33.445Z","updated_at":"2025-04-12T19:32:20.892Z","avatar_url":"https://github.com/zyprosoft.png","language":"PHP","readme":"# TopicQ微社区后台开源工程\n\n### 运行环境要求  \n\n后台基于Hyperf框架最新版本2.1进行开发\n\n1. PHP \u003e= 7.4\n2. Swoole PHP 扩展 \u003e= 4.5，并关闭了 Short Name\n3. OpenSSL PHP 扩展\n4. JSON PHP 扩展\n5. PDO PHP 扩展 （如需要使用到 MySQL 客户端）\n6. Redis PHP 扩展 （如需要使用到 Redis 客户端）\n7. Protobuf PHP 扩展 （如需要使用到 gRPC 服务端或客户端）\n\n8. 数据库Mysql \u003e= 5.7 \n\n9. Redis 建议最新版本\n\n### 项目安装\n\n1. 克隆或下载master分支\n2. 本地有composer可直接执行composer install\n3. 本地无composer进入hyperf-skeletion目录，执行php composer.phar install\n\n### 项目配置 \n\n```.env\n#服务基本配置\nAPP_NAME=dev_jianghu\nAPP_ENV=dev\n#服务端口\nHTTP_SERVER_PORT=9111 \n#监控数据端口\nPROMETHEUS_SCRAPE_PORT=9112 \n\n#需打通公众号是否关注的可配置下面公众号信息\nWX_FA_APPID=\nWX_FA_SECRET=\nWX_FA_TOKEN=\nWX_FA_AES_EY=\n\n#百度小程序配置\nBAIDU_CLIENT_ID=\nBAIDU_SECRET=\n\n#QQ小程序配置\nQQ_APPID=\nQQ_SECRET=\n\n#ES配置，可链接本地服务\nSCOUT_PREFIX=\nELASTICSEARCH_HOST=\n\n#用户默认地址信息\nREGISTER_AREA=\nREGISTER_COUNTRY=\n\n#多多客配置\nPDD_CLIENT_ID=\nPDD_CLIENT_SECRET=\nPDD_AUTH_CODE=1\n\n#飞鹅打印机配置\nPRINTER_USER=\nPRINTER_KEY=\n\n#微信支付信息\nWX_PAY_MCH_ID=商户号\nWX_PAY_SECRET=密钥\nWX_PAY_NOTIFY_URL=//回调地址\n\n#微信小程序配置\nWX_MINI_ENV=trial\\release\nWX_MINI_APPID=\nWX_MINI_SECRET=\n\n#鉴权\nSIMPLE_JWT_SECRET=//\nSIMPLE_JWT_TTL=//token 有效时间 单位 秒\n\n#ZGW协议\n#请求包是否强制校验签名true\\false\nZGW_FORCE_AUTH=\n#签名密钥对  key\u0026secret 例. devtopic\u0026topic\nZGW_SECRET_LIST=\n#签名有效时间，单位秒\nZGW_SIGN_TTL=\n\n#允许跨域域名列表，多个分号分割\nCORS_ORIGIN_LIST=\n\n\n#七牛配置，用于存储和短信验证码发送\n#cdn域名\nQINIU_CDN_DOMAIN=\nQINIU_SMS_APP_NAME=TopicQ\n#验证码短信模版\nQINIU_LOGIN_SMS_TEMP_ID=\nQINIU_ACCESS_KEY=\nQINIU_SECRET_KEY=\nQINIU_BUCKET=\n\n#数据库配置\nDB_DRIVER=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=\nDB_USERNAME=\nDB_PASSWORD=\nDB_CHARSET=utf8mb4\nDB_COLLATION=utf8mb4_unicode_ci\n\n#redis配置\nREDIS_HOST=localhost\nREDIS_AUTH=\nREDIS_PORT=6379\nREDIS_DB=7\n```\n### nginx配置\n```\nserver {\n\n\t#SSL 访问端口号为 443\n        listen 443 ssl; \n        #填写绑定证书的域名\n        server_name example.com; \n        #证书文件名称\n        ssl_certificate 1_example.com_bundle.crt; \n        #私钥文件名称\n        ssl_certificate_key 2_example.com.key; \n        ssl_session_timeout 5m;\n        #请按照以下协议配置\n        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; \n        #请按照以下套件配置，配置加密套件，写法遵循 openssl 标准。\n        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; \n        ssl_prefer_server_ciphers on;\n\n\terror_log    /www/server/nginx/logs/example.com-error_log;\n        access_log   /www/server/nginx/logs/example.com-access_log;\n\n        proxy_connect_timeout 30;\n        proxy_send_timeout 600;\n        proxy_read_timeout 600;\n\t\n\tlocation / {\n        \n\t    index index.html index.htm;\n\t    root /data/develop/dev.jianghu.lulinggushi.com/jianghu-server/hyperf-skeleton/public;\t\n\t    proxy_http_version 1.1;\n            proxy_set_header Connection \"keep-alive\";\n            proxy_set_header Host $host;\n            proxy_set_header X-Real-IP $remote_addr;\n            proxy_set_header REMOTE-HOST $remote_addr;\n            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n            proxy_pass   http://127.0.0.1:9111;\n        }\n\n\tlocation /wxpay/notify {\n\n            index index.html index.htm;\n            root /data/release/weshop.lulinggushi.com/public;\n            proxy_http_version 1.1;\n            proxy_set_header Connection \"keep-alive\";\n            proxy_set_header Host $host;\n            proxy_set_header X-Real-IP $remote_addr;\n            proxy_set_header REMOTE-HOST $remote_addr;\n            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n            proxy_pass   http://127.0.0.1:9111/wxpay/notify;\n        }\n\n\tlocation /qiniu/notify {\n\n            index index.html index.htm;\n            root /data/develop/dev.jianghu.lulinggushi.com/jianghu-server/hyperf-skeleton/public;\n            proxy_http_version 1.1;\n            proxy_set_header Connection \"keep-alive\";\n            proxy_set_header Host $host;\n            proxy_set_header X-Real-IP $remote_addr;\n            proxy_set_header REMOTE-HOST $remote_addr;\n            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n            proxy_pass   http://127.0.0.1:9111/qiniu/notify;\n        }\n        \n        location /pdd/notify {\n\n            index index.html index.htm;\n            root /data/develop/dev.jianghu.lulinggushi.com/jianghu-server/hyperf-skeleton/public;\n            proxy_http_version 1.1;\n            proxy_set_header Connection \"keep-alive\";\n            proxy_set_header Host $host;\n            proxy_set_header X-Real-IP $remote_addr;\n            proxy_set_header REMOTE-HOST $remote_addr;\n            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n            proxy_pass   http://127.0.0.1:9111/pdd/notify;\n        }\n\n\tlocation /api {\n\n            index index.html index.htm;\n            root /data/develop/dev.jianghu.lulinggushi.com/jianghu-server/hyperf-skeleton/public;\n            proxy_http_version 1.1;\n            proxy_set_header Connection \"keep-alive\";\n            proxy_set_header Host $host;\n            proxy_set_header X-Real-IP $remote_addr;\n            proxy_set_header REMOTE-HOST $remote_addr;\n            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n            proxy_pass   http://127.0.0.1:9111;\n        }\n\n\tlocation /captcha/ {\n            expires 30d;\n            root /data/develop/dev.jianghu.lulinggushi.com/jianghu-server/hyperf-skeleton/public;\n            client_max_body_size  10m;\n            client_body_buffer_size 1280k;\n            proxy_connect_timeout  900;\n            proxy_send_timeout   900;\n            proxy_read_timeout   900;\n            proxy_buffer_size    40k;\n            proxy_buffers      40 320k;\n            proxy_busy_buffers_size 640k;\n            proxy_temp_file_write_size 640k;\n        }\n}\t\n```\n\n### 服务管理\n进入 hyperf-skeleton 文件夹\n1. cp .env.example .env  填写配置文件\n2. 数据库初始化: php bin/hyperf.php migrate --seed\n3. 启动: php bin/hyperf.php server start\n4. 停止: php bin/hyperf.php server stop\n\n### 想用这个后台服务框架\n\n1. 如果想基于同样的框架，构建自己的服务，可以参考https://github.com/zyprosoft/hyperf-skeleton\n2. 使用脚手架可以快速搭建出同样的项目服务模板\n\n### 问题咨询\nQQ: 1003081775\n微信: zyprosoft\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzyprosoft%2Ftopicq-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzyprosoft%2Ftopicq-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzyprosoft%2Ftopicq-server/lists"}