# MacOS
brew install docker
# 启动Docker
open /Applications/Docker.app
git clone https://gitee.com/ZhongBangKeJi/CRMEB.git
cd CRMEB
# 使用docker-compose启动
docker-compose up -d
# 查看日志
docker-compose logs -f
# 查看运行状态
docker-compose ps
输出示例:
NAME COMMAND SERVICE STATUS PORTS
crmeb_mysql "docker-entrypoint.s…" mysql running 0.0.0.0:33061->3306/tcp
crmeb_redis "docker-entrypoint.s…" redis running 0.0.0.0:63791->6379/tcp
crmeb_php "docker-php-entrypoi…" phpfpm running 0.0.0.0:9000->9000/tcp, 0.0.0.0:40001-40002->40001-40002/tcp
crmeb_nginx "/docker-entrypoint.…" nginx running 0.0.0.0:8011->80/tcp
后台管理:
前端商城:
数据库:
Redis:
# 进入PHP容器
docker exec -it crmeb_php bash
# 在容器内启动队列(必须)
php think queue:listen --queue
# 启动定时任务(可选)
php think timer start --d
# 启动WebSocket(可选,用于实时通知)
php think workerman start --d
# 1. 安装PHP依赖
cd crmeb
composer install
# 如果安装慢,使用国内镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer install
# 2. 配置环境变量
cp .env.example .env
# 3. 修改.env配置文件
APP_DEBUG = false
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
HOSTPORT = 3306
USERNAME = root
PASSWORD = your_password
DATABASE = crmeb
PREFIX = eb_
CHARSET = utf8mb4
[REDIS]
REDIS_HOSTNAME = 127.0.0.1
PORT = 6379
REDIS_PASSWORD = your_password
SELECT = 0
# 4. 导入数据库
mysql -u root -p crmeb < database.sql
# 5. 设置目录权限
chmod -R 755 runtime
chmod -R 755 public/uploads
# 6. 配置Nginx/Apache
# Nginx配置示例:
server {
listen 80;
server_name your-domain.com;
root /path/to/CRMEB/crmeb/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 7. 启动队列(必须)
php think queue:listen --queue
# 8. 启动定时任务(可选)
php think timer start --d
# 9. 启动WebSocket(可选)
php think workerman start --d
管理端:
cd template/admin
# 安装依赖
npm install
# 开发环境
npm run dev
# 生产构建
npm run build
移动端(UniApp):
cd template/uni-app
# 安装依赖
npm install
# 开发环境 - H5
npm run dev:h5
# 开发环境 - 微信小程序
npm run dev:mp-weixin
# 生产构建 - H5
npm run build:h5
# 生产构建 - 微信小程序
npm run build:mp-weixin
# 使用curl测试API
curl http://localhost:8011/api/index
# 预期响应
{"code":200,"msg":"ok","data":{...}}
# 进入PHP容器
docker exec -it crmeb_php bash
# 查看队列状态
php think queue:status
# 查看定时任务状态
php think timer status
# 查看WebSocket服务状态
php think workerman status
问题:
Error: Ports are not available: exposing port TCP 0.0.0.0:33061
解决:
# 检查端口占用
lsof -i :33061
lsof -i :63791
lsof -i :8011
# 杀死占用进程
kill -9 <PID>
# 修改docker-compose.yml中的端口映射
# 例如:将 "33061:3306" 改为 "33062:3306"
问题:
SQLSTATE[HY000] [2002] Connection refused
解决:
# 检查MySQL容器状态
docker ps | grep mysql
# 查看MySQL日志
docker logs crmeb_mysql
# 检查.env配置
# 使用Docker时HOSTNAME应为crmeb_mysql
# 手动安装时HOSTNAME应为127.0.0.1
# 测试MySQL连接
docker exec -it crmeb_mysql mysql -u root -p
问题:
RedisException: Connection refused
解决:
# 检查Redis容器状态
docker ps | grep redis
# 测试Redis连接
docker exec -it crmeb_redis redis-cli -a 123456 ping
# 检查.env配置
# REDIS_HOSTNAME应为crmeb_mysql(Docker)或127.0.0.1(手动安装)
问题:
队列任务不执行,消息积压在Redis中
解决:
# 检查队列进程
ps aux | grep queue
# 重新启动队列
docker exec -it crmeb_php php think queue:restart
docker exec -it crmeb_php php think queue:listen --queue
# 查看队列日志
docker exec -it crmeb_php tail -f runtime/log/queue.log
问题:
访问http://localhost:8011/admin,页面空白或404
解决:
# 检查Nginx配置
docker exec -it crmeb_nginx cat /etc/nginx/conf.d/default.conf
# 检查public目录是否存在
docker exec -it crmeb_php ls -la /var/www/public/admin/
# 如果是手动安装,确保Nginx配置正确
# root指向/crmeb/public目录
# 确保伪静态配置正确
# 重新构建前端(手动安装)
cd template/admin
npm run build
问题:
上传图片提示失败,或无法显示
解决:
# 检查上传目录权限
docker exec -it crmeb_php ls -la /var/www/public/uploads/
# 修改权限
docker exec -it crmeb_php chmod -R 755 /var/www/public/uploads/
# 检查存储配置
# 后台管理 > 系统设置 > 文件存储
配置步骤:
注意:
配置步骤:
完成安装后,你可以:
查看专项Skill文档:
.codebuddy/skills/php-api/SKILL.md.codebuddy/skills/admin-element/SKILL.md.codebuddy/skills/uniapp/SKILL.md尝试代码生成器:在后台管理中快速生成CRUD代码
开发新功能:参考开发规范,创建你的第一个功能模块
查看示例代码:在crmeb/app/services/中查看现有功能实现
加入社区:加入CRMEB技术社区,获取更多帮助
文档版本: v1.0.0 最后更新: 2025-03-17