vr-shopxo-plugin/docs/DEPLOYMENT.md

3.7 KiB
Raw Blame History

ShopXO 本地开发环境部署

部署时间2026-04-14 适用平台macOS (Intel/Apple Silicon M1-M3)


一、快速启动

前提条件

  • Docker DesktopmacOS
  • ShopXO 源码(本仓库已克隆)

一键启动

cd ~/WorkSpace/shopxo-env
./start.sh

启动后访问:http://localhost:10000

首次安装

  1. 浏览器打开 http://localhost:10000
  2. 按向导填写:
配置项
数据库地址 mysqldb
端口 3306
数据库名 shopxo
用户名 shopxo_user
密码 shopxo_pass_2024
  1. 完成安装

停止环境

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

docker compose -f ~/WorkSpace/shopxo-env/docker-compose.yml restart php

四、日志查看

# 查看所有容器日志
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

然后重启:

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_USERMySQL 8.0 已移除)。


八、环境完整性验证

# 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