Files
sbnews/README.md
T
2026-06-11 12:15:29 +08:00

263 lines
12 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Sport Era 服务器部署脚本
部署脚本位置:
- Windows 原生:`scripts/deploy-server.ps1`
- Bash 兼容版:`scripts/deploy-server.sh`
脚本通过 SSH 别名 `sbnews` 连接服务器,打包本地 `server` 代码并在服务器目录解压安装。Windows 下优先使用 `deploy-server.ps1`,不依赖 WSL。
### PowerShell 一次执行命令
在 Windows PowerShell 中执行:
```powershell
cd D:\www\sport-era
powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -Sudo -RemoteDir /www/wwwroot/test-server.sbnews.net
```
如果 `sbnews` 配置在 `C:\Users\Administrator\.ssh\config` 中,默认会使用 Windows 的 `ssh.exe` 读取该配置。
### 全量发布
不传 commit id 即为全量发布:
```powershell
cd D:\www\sport-era
powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -Sudo -RemoteDir /www/wwwroot/test-server.sbnews.net
```
全量模式默认只打包以下目录:
```text
server/app
server/config
server/extend
server/public/dongqiudi-crawler
server/route
```
默认会排除运行态或较大目录,例如 `.env``vendor``runtime``public/uploads``public/admin``public/mobile`、爬虫 `data/logs/venv`。如确实需要包含,可追加参数:
```bash
--include-env
--include-vendor
--include-runtime
--include-uploads
--include-public-builds
--include-crawler-data
```
### 增量发布
传入两个 commit id,脚本会对比差异,只打包 `--to` 版本中的变更文件,并在服务器删除两个 commit 之间被删除的文件:
```powershell
cd D:\www\sport-era
powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -Sudo -From <old_commit> -To <new_commit> -RemoteDir /www/wwwroot/test-server.sbnews.net
```
示例:
```powershell
cd D:\www\sport-era
powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -Sudo -From abc1234 -To def5678 -RemoteDir /www/wwwroot/test-server.sbnews.net
```
### 自动增量发布
如果只是发布最近一次提交的后端改动,可以使用 `--auto-incremental`,脚本会自动对比 `HEAD~1``HEAD`
```powershell
cd D:\www\sport-era
powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -Sudo -AutoIncremental -RemoteDir /www/wwwroot/test-server.sbnews.net
```
先演练不上传:
```powershell
cd D:\www\sport-era
powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -AutoIncremental -RemoteDir /www/wwwroot/test-server.sbnews.net -DryRun
```
注意:自动增量只包含最近两个提交之间已经提交到 Git 的差异,不会包含工作区未提交文件。如有多次提交需要一起发布,请继续使用 `--from <old_commit> --to <new_commit>`
如果当前根目录 Git 只把 `server` 记录为 gitlink/submodule,且本机没有 `server/.git` 子仓库元数据,脚本无法拿到 `server` 内部的文件级差异;此时会自动降级为打包当前工作区默认的 5 个 server 目录,保证可以继续发布。
### 只演练不上传
先确认打包范围、包大小和增量删除清单:
```powershell
cd D:\www\sport-era
powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -RemoteDir /www/wwwroot/test-server.sbnews.net -DryRun
```
脚本会在打包后打印 `update log`:增量模式包含 commit 范围、commit 摘要、变更文件和删除文件;全量模式包含当前最新 commit 和默认打包目录。
每条部署日志都会带耗时,例如 `[+0.123s][total 1.456s]``+` 表示距离上一条日志的耗时,`total` 表示本次脚本启动后的累计耗时。服务器解压安装阶段会额外打印 `[deploy][remote]` 日志,用来判断耗时是在本地、上传还是远端解压。
### 发布后执行命令
如果需要解压后在服务器项目目录执行命令,可使用 `--post-install`
```powershell
cd D:\www\sport-era
powershell -ExecutionPolicy Bypass -File .\scripts\deploy-server.ps1 -Sudo -RemoteDir /www/wwwroot/test-server.sbnews.net -PostInstall "php think optimize:clear"
```
### 常见问题
1. `ssh: Could not resolve hostname sbnews`:检查 Windows 的 `C:\Users\Administrator\.ssh\config` 是否存在 `Host sbnews`,或直接用 `-HostName <服务器IP>`
2. PowerShell 禁止执行脚本:使用示例中的 `-ExecutionPolicy Bypass -File`,或以管理员身份调整当前用户执行策略。
3. `tar: Cannot utime``Cannot change mode`:远端目录权限不足,请加 `-Sudo`。脚本会使用 `sudo tar` 覆盖解压,并默认跳过还原 owner/permission,减少权限冲突。
4. 增量发布提示 commit 无效:确认 commit id 属于当前根目录 Git 可识别的历史。
5. `server is tracked as a root gitlink`:脚本检测到根 Git 只记录了 `server` 指针,无法做文件级增量,会自动改为打包当前工作区默认 5 个 server 目录。
6. 仍需使用 Bash 兼容版时,可继续运行 `bash ./scripts/deploy-server.sh ...`
<a href="https://www.likeshop.cn">![likeshop全开源商城](https://server.likeshop.cn/uploads/gitad/fastbuildAI.png)</a><br>
<a href="https://www.likeshop.cn">![likeshop全开源商城](https://server.likeshop.cn/uploads/gitad/likeshop.png)</a><br>
<a href="https://www.buildingai.cc">![BuildingAI](https://server.likeshop.cn/uploads/gitad/fastbuildAI.png)</a><br>
<h1 align="center">likeadminPHP
通用管理后台</h1>
<h4 align="center">🚀快速开发 🛠️ 一键生成代码 ✅后台多端自适应 📱手机端 🖥️PC(电脑)端前台</h4>
<p align="center">
<p align="center"><a href="https://gitee.com/likeadmin/likeadmin_php_saas">⬇⬇SaaS版点击这里⬇⬇</a></p>
<p align="center">
<a href="https://www.php.net/"><img src="https://img.shields.io/badge/PHP-8-8892bf"></a>
<a href="https://www.tslang.cn/"><img src="https://img.shields.io/badge/TypeScript-5-294e80"></a>
<a href="#"><img src="https://img.shields.io/badge/ThinkPHP-8.0-6fb737"></a>
<a href="#"><img src="https://img.shields.io/badge/Vue.js-3.5-4eb883"></a>
<a href="#"><img src="https://img.shields.io/badge/vite-5-ffc018"></a>
<a href="#"><img src="https://img.shields.io/badge/Element Plus-2.8-409eff"></a>
<a href="https://uniapp.dcloud.io/"><img src="https://img.shields.io/badge/uniapp-3-d85806"></a>
<a href="https://www.nuxtjs.cn/"><img src="https://img.shields.io/badge/Nuxt.js-3-18bc78"></a>
</p>
<p align="center">
<a href="https://mp.weixin.qq.com/"><img src="https://img.shields.io/badge/微信-公众号-05ce66"></a>
<a href="https://mp.weixin.qq.com/"><img src="https://img.shields.io/badge/微信-小程序-05ce66"></a>
<a href="https://open.weixin.qq.com/"><img src="https://img.shields.io/badge/微信-开放平台-05ce66"></a>
<a href="https://pay.weixin.qq.com/"><img src="https://img.shields.io/badge/微信-支付API3-05ce66"></a>
<a href="https://cloud.tencent.com/"><img src="https://img.shields.io/badge/腾讯云-COS-00a3ff"></a>
<a href="https://cloud.tencent.com/"><img src="https://img.shields.io/badge/腾讯云-短信-00a3ff"></a>
<a href="https://www.alipay.com"><img src="https://img.shields.io/badge/支付宝-支付-00a0eb"></a>
<a href="https://www.aliyun.com/"><img src="https://img.shields.io/badge/阿里云-OSS-ff6a00"></a>
<a href="https://www.aliyun.com/"><img src="https://img.shields.io/badge/阿里云-短信-ff6a00"></a>
<a href="https://www.qiniu.com/"><img src="https://img.shields.io/badge/七牛云-OSS-07beff"></a>
</p>
![](/server/public/readme/likeadmin.png)
## 🚀🚀🚀docker 本地一句命令快速部署体验
### 🐳 快速部署
安装启动 [docker](https://www.docker.com/) 之后,在终端运行以下命令即可体验。<br>
```shell
docker run -d --name likeadmin_php -p 20221:80 -e MYSQL_ROOT_PASSWORD=root registry.cn-guangzhou.aliyuncs.com/likeadmin/likeadmin_php:latest
```
如果需要自定义参数永久挂载数据,在终端运行以下命令,其中整个"[]"改成自定义参数。
```shell
docker run -d --name likeadmin_php \
-v 【主机存储数据库路径】:/var/lib/mysql \
-v 【主机存储项目代码文件路径】:/var/www/html/likeadmin_php \
-p 【访问端口】:80 \
-e MYSQL_ROOT_PASSWORD=【Mysql密码】 \
registry.cn-guangzhou.aliyuncs.com/likeadmin/likeadmin_php:latest
```
### ⚠️ 注意
1.如果出现无法访问,请等待 1 分钟,docker 部署每次会下载最新源码。<br> 2.安装的时候,数据默认帐号为 root,默认密码为 root。<br>
3.docker 快速部署只适合本地部署体验,不熟悉 docker 请勿用于生产环境,可能造成数据丢失等问题。
### 🛜 访问
访问安装程序:http://127.0.0.1:20221
<br>PC 端管理后台:http://127.0.0.1:20221/admin/login
<br>PC 端前台:http://127.0.0.1:20221/pc/
<br>手机端前台:http://127.0.0.1:20221/mobile/
## 👀 体验后台
### 管理后台
**地址:https://php.likeadmin.cn/admin <br>
账号:admin 密码:123456**
### 微信小程序前台
<img width="40%" src="/server/public/readme/mnp.jpg" /><br>
### 手机端网页前台
https://php.likeadmin.cn/mobile
### PC(电脑)端网页前台
https://php.likeadmin.cn/pc/
### 开发文档
地址:[https://www.likeadmin.cn](https://www.likeadmin.cn "https://www.likeadmin.cn")
### 🖥️ 界面预览
![](/server/public/readme/admin-1.png)
![](/server/public/readme/admin-2.png)
![](/server/public/readme/admin-3.png)
![](/server/public/readme/admin-4.png)
<br>
### 📱 手机端前台界面
<center class="half">
<img width="23%" src="/server/public/readme/mobile-1.png" />
<img width="23%" src="/server/public/readme/mobile-2.png" />
<img width="23%" src="/server/public/readme/mobile-3.png" />
<img width="23%" src="/server/public/readme/mobile-4.png" />
</center> <br>
### 🖥️PC 端前台界面
![](/server/public/readme/pc-1.png)
![](/server/public/readme/pc-2.png)
![](/server/public/readme/pc-3.png)
## 👨‍💻‍ 简介
我们希望能够为开源社区做出更多的贡献,推出永久免费开源的 likeadmin 通用前后端分离管理后台系统。遵循 MIT 开源许可协议,您可以免费使用,甚至允许把你基于 likeadmin 开发的软件应用开源、发布、销售。
<br>
## 🧐 进一步了解
### 🧰 场景介绍
1.likeadmin 已经搭建好前后端分离的底层,包含程序安装、登录、登出、工作台、菜单权限控制、角色、管理员、部门管理、岗位管理、素材管理、网站设置、图库管理等基础功能,无需重复造轮子。更有开发者工具功能,一键生成代码,大大节省开发时间。<br> 2.可视化系统程序安装界面,可自定义安装数据,开发者可快速扩展发行自己的软件产品。<br>
3.likeadmin 定位为通用的软件系统管理后台,方便开发者快速开发软件系统,文档清晰、代码易懂、简单易用。<br> 4.集成通用的微信支付(API3)、微信小程序公众号登录、阿里云、腾讯云短信,阿里云 OSS、腾讯云 COS、七牛云 OSS 等通用模块。
### 🐙 后端架构方面
1.服务端使用 PHP8.0 开发,性能有突破性的提升。<br> 2.使用最新 ThinkPHP8 框架,目前国内最流行的 PHP 框架,高性能、简单易用、文档齐全、支持 composer 快速安装组件、支持 Redis、支持 PSR 多种规范等。
### 🐹 前端架构方面
#### 后台
1.使用最流性的前后端分离方案 typescript、vue3、vite 开发,保持了代码的简洁、一致和规范。<br> 2.后台界面使用 element-plus UI 框架,简单精美的后台界面,丰富的组件库,方便快速开发,满足各种后台交互。
#### 手机前台
手机端 uniapp 前台,可以编译成手机 H5 网页、微信小程序、安卓 App,苹果 App 等客户端。
#### PC 端前台
PC 端前台使用 Nuxt.js,支持服务器端渲染(SSR),对 SEO 友好。
### 🛠️  代码生成器
一键生成前后端业务代码,大大提升开发效率。