帮助文档
{{userInfo.nickname}}
用户设置 退出登录

{{wikiTitle}}

项目运行说明

CRMEB多店系统 - 项目运行说明

一、概述

本文档详细介绍CRMEB多店系统的环境搭建、项目安装、前后端启动、调试等完整运行指南。

二、环境要求

2.1 服务端环境

组件 版本要求 推荐版本 说明
PHP >= 7.1 7.4 需开启swoole扩展
MySQL >= 5.7 8.0 推荐InnoDB引擎
Redis >= 5.0 6.x 用于缓存和队列
Nginx >= 1.18 1.20+ 或Apache

2.2 PHP扩展要求

# 必需扩展
php -m | grep -E "pdo_mysql|redis|curl|gd|mbstring|openssl|swoole|fileinfo"

# 需要开启的扩展
- pdo_mysql      # MySQL数据库支持
- redis          # Redis缓存支持
- curl           # HTTP请求
- gd             # 图片处理
- mbstring       # 多字节字符串
- openssl        # 加密支持
- swoole >= 4.4  # 异步IO(可选,用于websocket)
- swoole_loader(3.0.8版本) #商业版用于解密
- fileinfo       # 文件类型检测
- bcmath         # 精确计算
- pcntl          # 进程控制(队列需要)

2.3 前端环境

工具 版本要求 说明
Node.js >= 14.x 推荐16.x LTS
npm >= 6.x 或使用yarn
yarn >= 1.22 可选

三、后端安装部署

3.1 方式一:常规安装

第一步:下载代码

# 克隆项目
git clone https://gitee.com/ZhongBangKeJi/CRMEB.git

# 或解压源码包
unzip CRMEB_MULTI_v3.5.0.zip
cd CRMEB_MULTI_v3.5.0

第二步:安装PHP依赖

# 进入项目目录
cd /www/wwwroot/crmeb

# 安装依赖
composer install

# 如果composer较慢,可使用国内镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer install

第三步:配置环境变量

# 复制环境配置文件
cp .example.env .env

# 编辑配置文件
vim .env

.env 配置内容:

APP_DEBUG = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = crmeb_multi
USERNAME = root
PASSWORD = your_password
HOSTPORT = 3306
CHARSET = utf8mb4
DEBUG = false
PREFIX = eb_

[LANG]
default_lang = zh-cn

[REDIS]
REDIS_HOSTNAME = 127.0.0.1
PORT = 6379
REDIS_PASSWORD = 
SELECT = 0

第四步:导入数据库

# 创建数据库
mysql -uroot -p -e "CREATE DATABASE crmeb_multi DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"

# 导入数据
mysql -uroot -p crmeb_multi < public/install/crmeb.sql

第五步:配置Nginx

server {
    listen 80;
    server_name your-domain.com;
    root /www/wwwroot/crmeb/public;
    index index.html index.php;

    # 前端静态资源
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 后端API
    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;
    }

    # 禁止访问敏感文件
    location ~ /\.(env|git|svn) {
        deny all;
    }

    # 静态资源缓存
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {
        expires 30d;
    }
}

第六步:设置目录权限

# 设置存储目录权限
chmod -R 777 runtime
chmod -R 777 public/uploads
chmod -R 777 public/install

# 设置所有者
chown -R www:www /www/wwwroot/crmeb

第七步:访问安装向导

浏览器访问:http://your-domain.com/install
按照安装向导完成安装配置

3.2 方式二:Docker安装

docker-compose.yml 配置:

version: "3"

services:
  crmeb:
    image: leekay0218/crmeb-pro
    container_name: crmeb
    ports:
      - "80:80"
      - "9501:9501"
    volumes:
      - ./:/var/www
      - ./help/docker-compose/nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - mysql
      - redis
    networks:
      - crmeb-network

  mysql:
    image: mysql:8.0
    container_name: crmeb-mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: crmeb_multi
    ports:
      - "3306:3306"
    volumes:
      - ./data/mysql:/var/lib/mysql
    networks:
      - crmeb-network

  redis:
    image: redis:6
    container_name: crmeb-redis
    ports:
      - "6379:6379"
    volumes:
      - ./data/redis:/data
    networks:
      - crmeb-network

networks:
  crmeb-network:
    driver: bridge

启动Docker容器:

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 进入容器
docker exec -it crmeb bash

# 停止服务
docker-compose down

3.3 配置队列服务

# 启动队列监听
php think queue:listen --queue

# 后台运行(推荐使用supervisor管理)
nohup php think queue:listen --queue > /dev/null 2>&1 &

Supervisor配置:

; /etc/supervisor/conf.d/crmeb-queue.conf
[program:crmeb-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/crmeb/think queue:listen --queue
autostart=true
autorestart=true
user=www
numprocs=4
redirect_stderr=true
stdout_logfile=/www/wwwroot/crmeb/runtime/queue.log
# 启动supervisor
supervisorctl reread
supervisorctl update
supervisorctl start crmeb-queue:*

3.4 配置定时任务

# 编辑crontab
crontab -e

# 添加定时任务(每分钟执行)
* * * * * cd /www/wwwroot/crmeb && php think crmeb:timer >> /dev/null 2>&1

3.5 启动WebSocket服务(可选)

# 启动swoole服务
php think swoole start

# 后台启动
php think swoole start -d

# 重启服务
php think swoole restart

# 停止服务
php think swoole stop

四、前端安装部署

4.1 平台后台前端

# 进入前端目录
cd view/admin

# 安装依赖
npm install
# 或
yarn install

# 开发环境运行
npm run serve
# 或
yarn serve

# 生产环境打包
npm run build
# 或
yarn build

环境配置文件:

// view/admin/.env.dev(开发环境)
NODE_ENV=development
VUE_APP_BASE_API=/adminapi
VUE_APP_WS_URL=ws://localhost:9501

// view/admin/.env.production(生产环境)
NODE_ENV=production
VUE_APP_BASE_API=/adminapi
VUE_APP_WS_URL=wss://your-domain.com:9502

4.2 门店端前端

# 进入门店前端目录
cd view/store

# 安装依赖
npm install

# 开发环境运行
npm run serve

# 生产环境打包
npm run build

4.3 供应商端前端

# 进入供应商前端目录
cd view/supplier

# 安装依赖
npm install

# 开发环境运行
npm run serve

# 生产环境打包
npm run build

4.4 收银端前端

# 进入收银端前端目录
cd view/cashier

# 安装依赖
npm install

# 开发环境运行
npm run serve

# 生产环境打包
npm run build

4.5 移动端(UniApp)

# 进入移动端目录
cd view/uniapp

# 安装依赖
npm install

# 运行到H5
npm run dev:h5

# 运行到微信小程序
npm run dev:mp-weixin

# 运行到APP
npm run dev:app

# 打包H5
npm run build:h5

# 打包小程序
npm run build:mp-weixin

HBuilderX运行方式:

  1. 打开HBuilderX
  2. 导入 view/uniapp 项目
  3. 运行 → 运行到浏览器/小程序模拟器/手机

五、开发环境配置

5.1 IDE推荐配置

PHPStorm/WebStorm:

  • 安装PHP插件
  • 配置PHP解释器路径
  • 配置Composer路径
  • 安装Vue.js插件

VSCode:

  • 安装PHP Intelephense
  • 安装Vetur(Vue工具)
  • 安装ESLint
  • 安装Prettier

5.2 本地开发环境

Windows(使用宝塔/phpStudy):

1. 安装宝塔面板或phpStudy
2. 创建站点,根目录指向项目的public目录
3. 配置PHP版本 >= 7.4
4. 安装必要的PHP扩展
5. 配置hosts文件

macOS(使用MAMP/Homebrew):

# 安装PHP
brew install [email protected]

# 安装MySQL
brew install mysql

# 安装Redis
brew install redis

# 安装Nginx
brew install nginx

5.3 调试配置

后端调试(Xdebug):

; php.ini
[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003

前端调试(Vue Devtools):

  • Chrome安装Vue.js devtools扩展
  • Firefox安装Vue.js devtools扩展

六、常用命令

6.1 ThinkPHP命令

# 清除缓存
php think clear

# 查看路由列表
php think route:list

# 生成命令列表
php think list

# 创建控制器
php think make:controller admin/Test

# 创建模型
php think make:model Test

# 创建验证器
php think make:validate TestValidate

# 数据库迁移
php think migrate:run

6.2 队列命令

# 启动队列监听
php think queue:listen

# 指定队列名称
php think queue:listen --queue=order

# 查看失败任务
php think queue:failed

# 重试失败任务
php think queue:retry all

6.3 Swoole命令

# 启动服务
php think swoole start

# 后台启动
php think swoole start -d

# 重启服务
php think swoole restart

# 停止服务
php think swoole stop

# 查看状态
php think swoole status

6.4 前端命令

# 安装依赖
npm install / yarn install

# 开发运行
npm run serve / yarn serve

# 生产打包
npm run build / yarn build

# 代码检查
npm run lint / yarn lint

# 代码修复
npm run lint --fix

七、部署上线

7.1 部署检查清单

- [ ] 关闭调试模式 APP_DEBUG = false
- [ ] 配置生产环境数据库
- [ ] 配置生产环境Redis
- [ ] 打包前端资源
- [ ] 配置HTTPS证书
- [ ] 配置队列服务
- [ ] 配置定时任务
- [ ] 检查目录权限
- [ ] 配置日志轮转
- [ ] 配置服务器安全组

7.2 性能优化

# 开启OPcache
vim /etc/php/8.0/fpm/php.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

# 优化Composer
composer dump-autoload -o

# 生成配置缓存
php think config:cache

# 生成路由缓存
php think route:cache

7.3 安全配置

# 禁止访问敏感目录
chmod 000 .env
chmod 000 .git

# 配置防火墙
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22/tcp
ufw enable

八、常见问题

Q1: composer install 失败?

解决方案:

# 使用国内镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

# 忽略版本要求
composer install --ignore-platform-reqs

Q2: 前端npm install报错?

解决方案:

# 清除缓存
npm cache clean --force

# 删除node_modules重新安装
rm -rf node_modules
rm package-lock.json
npm install

# 使用淘宝镜像
npm config set registry https://registry.npmmirror.com

Q3: Redis连接失败?

解决方案:

  1. 检查Redis服务是否启动
  2. 检查.env配置是否正确
  3. 检查Redis密码配置
  4. 检查防火墙端口

Q4: 队列任务不执行?

解决方案:

  1. 检查队列监听是否启动
  2. 检查Redis连接是否正常
  3. 查看runtime/queue.log日志
  4. 检查任务类是否存在语法错误

Q5: 文件上传失败?

解决方案:

# 检查目录权限
chmod -R 777 public/uploads

# 检查PHP配置
upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 300

Q6: WebSocket连接失败?

解决方案:

  1. 检查Swoole服务是否启动
  2. 检查端口是否开放
  3. 检查Nginx反向代理配置
  4. 检查前端WebSocket地址配置

九、日志查看

# 查看PHP错误日志
tail -f /www/wwwroot/crmeb/runtime/log/*.log

# 查看Nginx错误日志
tail -f /var/log/nginx/error.log

# 查看队列日志
tail -f /www/wwwroot/crmeb/runtime/queue.log

# 查看Swoole日志
tail -f /www/wwwroot/crmeb/runtime/swoole.log
{{cateWiki.like_num}}人点赞
0人点赞
评论({{cateWiki.comment_num}}) {{commentWhere.order ? '评论从旧到新':'评论从新到旧'}} {{cateWiki.page_view_num}}人看过该文档
评论(0) {{commentWhere.order ? '评论从旧到新':'评论从新到旧'}} 11人看过该文档
评论
{{item.user ? item.user.nickname : ''}} (自评)
{{item.content}}
{{item.create_time}} 删除
{{item.like ? item.like.like_num : 0}} {{replyIndex == index ? '取消回复' : '回复'}}
评论
{{items.user ? items.user.nickname : '暂无昵称'}} (自评)
{{items.content}}
{{items.create_time}} 删除
{{items.like ? items.like.like_num : 0}} {{replyIndexJ == (index+'|'+indexJ) ? '取消回复' : '回复'}}
评论
目录
  • {{item}}