Files
larablog/docs/ops/install.md
T
gouki 3cec4c5e18
CI / PHPUnit (PHP 8.3) (push) Failing after 4s
CI / PHPUnit (PHP 8.2) (push) Failing after 1m9s
CI / Deploy (manual gate) (push) Skipped
wip: article AI polish, category SEO fields, cover generator, membership plan seeder
2026-09-07 18:48:37 +00:00

157 lines
4.0 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.
# 安装(本地开发)
把 LaraBlog 跑起来:前台、Filament 后台、演示数据。从 sablog 迁站请先看 [import.md](./import.md),**不要先灌演示数据**。上线见 [deploy.md](./deploy.md)。
## 环境
| 项 | 要求 |
|---|---|
| PHP | **8.2+**`composer.json` |
| 扩展 | `mbstring``openssl``pdo``tokenizer``xml``ctype``json``fileinfo``gd`(封面/图片)、`zip` |
| Composer | 2.x |
| 数据库 | 开发可用 SQLite;也可用 MySQL / MariaDB |
| 可选 | Redis(队列/缓存);Node.js 仅在改前端资源时需要 |
| 可选 | `pcntl` + `posix`(本机跑 `workerman:ai`;没有就用 `queue:ai` |
macOS 可用 Laravel Herd / Valet,指向仓库的 `public/`。也可用 `php artisan serve`
## 1. 代码与依赖
```bash
cd /path/to/larablog
composer install
cp .env.example .env
php artisan key:generate
```
## 2. 配置 `.env`
最少改这些:
```env
APP_NAME=LaraBlog
APP_ENV=local
APP_DEBUG=true
APP_URL=http://larablog.test # 必须和浏览器访问的 origin 一致
APP_LOCALE=zh_CN
# 开发默认 SQLite(文件需存在)
DB_CONNECTION=sqlite
# DB_DATABASE=/绝对路径/database/database.sqlite
# 开发附件落本地,不必配 S3
ATTACHMENTS_DRIVER=local
QUEUE_CONNECTION=database
CACHE_STORE=database
SESSION_DRIVER=database
# 本机没有真实 LLM 时用 stub,避免后台点「AI 润色」去打外网
AI_PROVIDER=stub
```
SQLite 文件:
```bash
mkdir -p database
touch database/database.sqlite
```
改用 MySQL 时:
```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=larablog
DB_USERNAME=root
DB_PASSWORD=
```
## 3. 初始化
```bash
php artisan migrate
php artisan db:seed
php artisan plugins:sync
php artisan migrate # 插件表(支付/会员等)随 discover 加载,再跑一遍即可
php artisan themes:publish
```
`db:seed` 会:
- 写入 AI 设置(来自 `.env``AI_*`
- 启用 `larablog/ai-comment-moderation`,并尝试启用 `payment` / `membership`
- 创建演示分类、文章、友情链接
- 创建后台账号
## 4. 启动
**Herd / nginx** 站点根目录设为 `public/`,打开 `APP_URL`
**内置服务器:**
```bash
php artisan serve
```
本地要排空队列(含 AI)可以另开终端:
```bash
php artisan queue:work --tries=3
# 或只处理 AI 队列(不会启动 Workerman):
php artisan queue:ai
```
改 Filament/Vite 资源时才需要 `npm install && npm run dev`。主题 CSS 走 `php artisan themes:publish` 拷到 `public/themes/`
## 5. 入口与账号
| 入口 | 地址 |
|---|---|
| 前台 | `/``/show-1.shtml``/login.shtml` |
| 后台 | `/admin` |
| API | `/api/v1/meta``/api/v1/articles` |
| OpenAPI | `/docs/api/openapi.yaml` |
演示管理员(`DemoBlogSeeder`):
- 邮箱:`admin@larablog.test`
- 密码:`password`
登录后请立刻改密码。不要把这组账号用在公网。
## 6. 插件(可选)
```bash
php artisan plugins:sync
# 后台 → 插件 → 启用;或:
php artisan plugins:sync --enable=larablog/payment,larablog/membership
php artisan migrate
```
依赖顺序:先 `larablog/payment`,再 `larablog/paid-content` / `larablog/membership`。说明见后台卡片「使用说明」,以及 `docs/plugins.md`
## 7. 自检
```bash
php artisan test
php artisan route:list --path=shtml
```
浏览器打开首页、一篇 `.shtml` 文章、`/admin`。本地附件地址形如 `/attachments-local/...`(由 Laravel 路由提供,不必 `storage:link`)。
## 常见问题
**500 / 空白页**
`storage/``bootstrap/cache/` 对 PHP 进程可写;`APP_KEY` 已生成;`APP_DEBUG=true``storage/logs/laravel.log`
**后台样式丢失**
执行 `php artisan filament:upgrade``php artisan themes:publish`
**点了 AI 润色没反应**
`AI_PROVIDER=stub` 时也要有队列消费者;`QUEUE_CONNECTION=sync` 会在请求内执行(仅调试)。生产见 [deploy.md](./deploy.md)。
**准备导入旧站**
不要用这份「演示种子」当生产数据。空库 `migrate` 后直接走 [import.md](./import.md)。