# 深圳市云创芯电子有限公司 · 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 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 | 论坛回复(软删) |