feat: 添加 ShopXO 本地开发环境部署文档
- Docker Compose 完整配置(ARM64 Mac 兼容) - 一键启动脚本 start.sh - 首次安装配置说明 - 日志/数据库连接/已知问题council/backend-reviewer
parent
894a8c1fbb
commit
73db50056e
|
|
@ -0,0 +1,176 @@
|
|||
# ShopXO 本地开发环境部署
|
||||
|
||||
> 部署时间:2026-04-14
|
||||
> 适用平台:macOS (Intel/Apple Silicon M1-M3)
|
||||
|
||||
---
|
||||
|
||||
## 一、快速启动
|
||||
|
||||
### 前提条件
|
||||
|
||||
- Docker Desktop(macOS)
|
||||
- ShopXO 源码(本仓库已克隆)
|
||||
|
||||
### 一键启动
|
||||
|
||||
```bash
|
||||
cd ~/WorkSpace/shopxo-env
|
||||
./start.sh
|
||||
```
|
||||
|
||||
启动后访问:**http://localhost:10000**
|
||||
|
||||
### 首次安装
|
||||
|
||||
1. 浏览器打开 http://localhost:10000
|
||||
2. 按向导填写:
|
||||
|
||||
| 配置项 | 值 |
|
||||
|---|---|
|
||||
| 数据库地址 | `mysqldb` |
|
||||
| 端口 | `3306` |
|
||||
| 数据库名 | `shopxo` |
|
||||
| 用户名 | `shopxo_user` |
|
||||
| 密码 | `shopxo_pass_2024` |
|
||||
|
||||
3. 完成安装
|
||||
|
||||
### 停止环境
|
||||
|
||||
```bash
|
||||
docker compose -f ~/WorkSpace/shopxo-env/docker-compose.yml down
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、目录结构
|
||||
|
||||
```
|
||||
~/WorkSpace/shopxo-env/
|
||||
├── docker-compose.yml # 容器编排配置
|
||||
├── .env # 环境变量(数据库密码)
|
||||
├── start.sh # 启动脚本
|
||||
├── etc/
|
||||
│ ├── nginx/ # nginx 配置
|
||||
│ ├── php/ # PHP 配置
|
||||
│ └── db/ # MySQL 配置
|
||||
└── logs/ # 日志目录(待创建)
|
||||
```
|
||||
|
||||
**ShopXO 源码挂载位置**:
|
||||
- 容器内:`/var/www/html`
|
||||
- 本地: `${SHOPXO_SRC}` 环境变量指向的目录
|
||||
|
||||
---
|
||||
|
||||
## 三、容器说明
|
||||
|
||||
| 容器名 | 镜像 | 端口 | 说明 |
|
||||
|---|---|---|---|
|
||||
| `shopxo-web` | nginx:latest | 10000→80 | Web 服务器 |
|
||||
| `shopxo-php` | nanoninja/php-fpm:8.1 | 9000 (内部) | PHP-FPM |
|
||||
| `shopxo-mysql` | mysql:8.0 | 10001→3306 | 数据库 |
|
||||
|
||||
### PHP 扩展(已预装)
|
||||
|
||||
```
|
||||
pdo_mysql ✅ curl ✅ gd ✅
|
||||
mbstring ✅ openssl ✅ zip ✅
|
||||
```
|
||||
|
||||
### 修改代码后
|
||||
|
||||
代码通过绑定挂载直接挂到容器内,**修改本地文件立即生效**,无需重启容器。
|
||||
|
||||
如需重启 PHP:
|
||||
```bash
|
||||
docker compose -f ~/WorkSpace/shopxo-env/docker-compose.yml restart php
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、日志查看
|
||||
|
||||
```bash
|
||||
# 查看所有容器日志
|
||||
docker compose -f ~/WorkSpace/shopxo-env/docker-compose.yml logs -f
|
||||
|
||||
# 仅看 PHP 日志
|
||||
docker compose -f ~/WorkSpace/shopxo-env/docker-compose.yml logs -f php
|
||||
|
||||
# 仅看 MySQL 日志
|
||||
docker compose -f ~/WorkSpace/shopxo-env/docker-compose.yml logs -f mysqldb
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、数据库连接
|
||||
|
||||
从容器内连接(PHP 连接 MySQL):
|
||||
```
|
||||
主机: mysqldb(容器网络名)
|
||||
端口: 3306
|
||||
用户: shopxo_user
|
||||
密码: shopxo_pass_2024
|
||||
```
|
||||
|
||||
从宿主机连接(数据库工具):
|
||||
```
|
||||
主机: localhost
|
||||
端口: 10001
|
||||
用户: root
|
||||
密码: shopxo_root_2024
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 六、修改 ShopXO 源码路径
|
||||
|
||||
默认挂载到:
|
||||
```
|
||||
/Users/bigemon/.openclaw/workspace/council-research/shopxo-eval/.worktrees/shopxo-evaluator/shopxo-src/
|
||||
```
|
||||
|
||||
如需切换到其他目录,修改 `~/WorkSpace/shopxo-env/.env`:
|
||||
```
|
||||
SHOPXO_SRC=/你的/路径/shopxo-src
|
||||
```
|
||||
|
||||
然后重启:
|
||||
```bash
|
||||
docker compose -f ~/WorkSpace/shopxo-env/docker-compose.yml restart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 七、已知问题
|
||||
|
||||
### M1/M2/M3 Mac ARM64 兼容
|
||||
|
||||
`nanoninja/php-fpm:8.1` 镜像为 AMD64,通过 Rosetta2 模拟运行。功能正常,但性能略低于原生 ARM64 镜像。
|
||||
|
||||
**未来可选方案**:如有性能需求,可研究支持 ARM64 的 PHP-FPM 镜像(如 `php:8.1-fpm-alpine`)。
|
||||
|
||||
### MySQL 配置文件
|
||||
|
||||
`etc/db/my.cnf` 已针对 MySQL 8.0 优化,移除了 `NO_AUTO_CREATE_USER`(MySQL 8.0 已移除)。
|
||||
|
||||
---
|
||||
|
||||
## 八、环境完整性验证
|
||||
|
||||
```bash
|
||||
# 1. 检查容器运行状态
|
||||
docker ps --filter "name=shopxo"
|
||||
|
||||
# 2. 验证 PHP
|
||||
docker exec shopxo-php php -v
|
||||
|
||||
# 3. 验证 MySQL 连接
|
||||
docker exec shopxo-php php -r "new PDO('mysql:host=mysqldb', 'shopxo_user', 'shopxo_pass_2024');"
|
||||
|
||||
# 4. 验证 Web 访问
|
||||
curl -s -o /dev/null -w "%{http_code}" http://localhost:10000/
|
||||
# 期望输出: 302 (重定向到安装向导) 或 200
|
||||
```
|
||||
Loading…
Reference in New Issue