Files
cloud-chip.cn/README.md
T
2026-08-08 18:27:38 +08:00

154 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
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.
# 深圳市云创芯电子有限公司 · Laravel 12 + Vue3(CDN) 官网
一套**零构建、零 Node**的轻量全栈站点,专为宝塔面板(Nginx + PHP 8.3 + MySQL 5.7)设计,强调安全、稳定、易移植。
## 功能模块
| 模块 | 前台 | 后台管理 |
|------|------|----------|
| 产品中心 | 列表 + 搜索 + 分类筛选 + 详情页 | CRUD + 分类 + 草稿/发布 |
| 技术文章 | 列表 + 搜索 + 分类筛选 + 详情页 | CRUD + 分类 + 作者 + 发布时间 |
| 术语库 | 列表 + 搜索 + 详情页 | CRUD + 别名 + 分类 |
| 技术论坛 | 版块 + 帖子 + 回复 + 发帖/回复 | 版块管理 + 帖子删除 + 锁帖 |
| 联系我们 | Vue 异步表单 + CSRF + 限流 | 留言列表 + 详情 + 删除 |
| 用户系统 | 注册 + 登录 + 退出 + 个人设置 | 用户列表 + 管理员提权/降权 + 删除 |
| 用户等级 | 积分驱动 L1–L5 徽章 + 进度条 | 用户列表可见积分 |
| 账号安全 | `/settings` 自助修改密码(需验证当前密码) | - |
| 站点设置 | 站名 / Logo / Favicon / ICP 全站生效 | `/admin/settings` 统一维护 |
| SEO | 每页独立 title + description,缺省回落全局 | 文章/产品表单内逐条填写 |
| 文章版式 | 三种阅读版式(标准 / 宽栏 / 文档) | 发布时下拉选择 |
| 仪表盘 | - | 统计概览 + 最新留言/帖子 |
## 技术选型
| 项 | 方案 |
|----|------|
| 后端 | Laravel 12PHP 8.3 |
| 前端交互 | Vue 3.5.13 全局构建,本地自托管(无 CDN 依赖) |
| 样式 | 纯 CSS + 设计令牌(:root 变量),全站只用 var() |
| 视图 | Blade 服务端渲染(SEO 友好,首屏快) |
| 图标 | 内联 SVG 组件(统一描边,16/20/24 三档尺寸) |
| 前端构建 | **无构建**(无 npm / Vite / Tailwind |
| 数据库 | MySQL 5.7utf8mb4_unicode_ci |
| RBAC | is_admin 布尔标志位 + Admin 中间件 + /admin 路由组 |
## 目录结构
```
app/
Http/Controllers/
HomeController.php 首页(产品+文章)
ProductController.php 产品列表/详情
ArticleController.php 文章列表/详情
GlossaryController.php 术语列表/详情
ForumController.php 论坛版块/帖子/回复
ContactController.php 联系表单(Vue 异步 + 限流)
HealthController.php /api/health 健康检查
Auth/LoginController.php 登录 / 退出
Auth/RegisterController.php 注册
Auth/SettingsController.php 个人设置(修改密码)
Admin/ 后台管理(10 个控制器,含站点设置)
Http/Middleware/Admin.php 管理员中间件
Models/ 10 个模型(含关系和 scope)
database/
migrations/ 16 个迁移
seeders/ 7 个 seeder(全部幂等,可重复执行)
public/
css/app.css 设计令牌 + 完整组件样式
js/app.js Vue 挂载(联系表单)
js/vendor/vue.global.prod.js 自托管 Vue 3.5.13
resources/views/
layouts/app.blade.php 前台布局
components/icon.blade.php 内联 SVG 图标组件
home.blade.php 首页
products/ articles/ glossary/ 前台展示页
forum/ 论坛页面
auth/ 登录/注册/个人设置
admin/ 后台管理页面(layout + 16 个子页面)
routes/web.php 前台 + /admin 路由组
```
## 安全要点
- 全站 CSRF`@csrf` + 前端 `X-CSRF-TOKEN`
- 表单服务端校验(`validate`),Vue 仅做体验增强
- 联系表单频率限制:同一 IP 60 秒内最多 5 次
- 密码 `bcrypt``hashed` cast),会话 cookie `secure` + `http_only` + `encrypt`
- Blade `{{ }}` 自动转义,防 XSS
- Eloquent 参数化查询,防 SQL 注入
- Admin 中间件保护所有后台路由
## 宝塔部署(3 步)
### 第 1 步:建站点 + 数据库
宝塔 → 网站 → 添加站点:
- 根目录指向 `public/`
- PHP 版本:8.3
- 同时建好 MySQL 数据库(排序规则 `utf8mb4_unicode_ci`
### 第 2 步:传代码 + 安装
```bash
cd /www/wwwroot/cloud-chip.cn
# 配置 Composer 镜像(国内服务器)
composer config -g repos.packagist.org composer https://mirrors.aliyun.com/composer/
# 安装依赖(必须先于 artisan 命令)
composer install --no-dev --optimize-autoloader --no-interaction
# 配置环境
cp .env.example .env
# 编辑 .env,填写:
# DB_DATABASE=你的数据库名
# DB_USERNAME=你的数据库用户
# DB_PASSWORD=你的数据库密码
# APP_URL=https://cloud-chip.cn
# 生成密钥 + 迁移 + 种子数据
php artisan key:generate
php artisan migrate --force
php artisan db:seed --force
# 权限
chmod -R 755 storage bootstrap/cache
php artisan storage:link
```
或直接运行 `./install.sh`(自动完成上述全部步骤)。
### 第 3 步:配置伪静态
宝塔 → 站点设置 → 伪静态 → 选择 **Laravel** 模板。
### 注意事项
- **宝塔禁用函数**:PHP-8.3 设置 → 禁用函数,删除 `putenv, proc_open, proc_get_status, proc_close, popen` 并重启 PHP-FPM
- **运行时目录**:确保 `storage/``bootstrap/cache/` 对 www 用户可写(755
## 默认管理员账号
Seeder 会自动创建管理员账号:
- 邮箱:`admin@cloud-chip.cn`
- 密码:`cloudchip2026`
**请在首次登录后立即修改密码**:登录后访问 `/settings` → 修改密码(需输入当前密码校验)。
## 数据库表
| 表名 | 说明 |
|------|------|
| users | 用户(is_admin 布尔 + points 积分) |
| settings | 站点级 key-value 配置(ICP / Logo / SEO 等) |
| password_reset_tokens | 密码重置令牌 |
| failed_jobs | 失败任务队列 |
| contact_messages | 联系表单留言 |
| categories | 分类(type: product/article |
| products | 产品(软删) |
| articles | 文章(软删 + 发布时间) |
| glossary_terms | 术语 |
| forum_boards | 论坛版块 |
| forum_threads | 论坛帖子(软删 + 置顶 + 锁定) |
| forum_replies | 论坛回复(软删) |