初始化
This commit is contained in:
@@ -1,3 +1,153 @@
|
||||
# cloud-chip.cn
|
||||
# 深圳市云创芯电子有限公司 · Laravel 12 + Vue3(CDN) 官网
|
||||
|
||||
pd网站
|
||||
一套**零构建、零 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 12(PHP 8.3) |
|
||||
| 前端交互 | Vue 3.5.13 全局构建,本地自托管(无 CDN 依赖) |
|
||||
| 样式 | 纯 CSS + 设计令牌(:root 变量),全站只用 var() |
|
||||
| 视图 | Blade 服务端渲染(SEO 友好,首屏快) |
|
||||
| 图标 | 内联 SVG 组件(统一描边,16/20/24 三档尺寸) |
|
||||
| 前端构建 | **无构建**(无 npm / Vite / Tailwind) |
|
||||
| 数据库 | MySQL 5.7(utf8mb4_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 | 论坛回复(软删) |
|
||||
|
||||
Reference in New Issue
Block a user