CRMEB系统采用前后端分离技术,基于TP6+Vue2.5+Uniapp框架开发;支持微信小程序、公众号、H5、APP、PC端适配,数据同步!是一套单商户新零售社交电商系统。
目录
安装
安装环境
安装环境需要 nginx mysql5.7 php 7.4
我使用的是phpstudy_pro环境,直接安装了nginx
原本就有mysql和php环境则不需要安装。
安装过程
开始安装
访问设置好的域名,进入安装界面,同意使用协议,点击开始安装。
安装检测
看一下软件环境和版本要求是否符合及这些配置是否打开。
权限的话linux环境需要设置一下文件夹的权限,window环境则不需要。
数据库配置
设置数据库连接和管理员信息;缓存直接使用文件即可。
设置管理员密码后,最好记录一下,免得一会登录忘记了。
高级设置
也可以点击高级设置确定一下数据库服务器的ip和端口及数据表前缀等信息。
Redis缓存
如果在缓存时选择redis缓存类型时,需要设置以下几个选项。
出现sql_mode提示
在点击下一步时出现提示需要修改mysql的sql_mode参数。
修改mysql配置文件
首先打开mysql安装目录找到配置文件my.ini文件,如下:
在window环境下,修改mysql的配置文件my.ini即可。
在my.ini文件中 添加一行如下:
sql_mode='NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
这样可以禁止mysql自动创建用户和引擎替换。
可通过sql工具执行命令查看结果,命令如下:
show VARIABLES like '%sql_mode%'
修改后重启mysql以加载配置。
然后点击下一步,开始进行自动安装流程。
最后提示安装成功,如下图:
后台登录页
访问路由提示404
安装完成后,无论是访问前端首页还是后端管理员登录都提示404。
查看nginx配置
打开nginx相应域名的配置文件,可看到需在crmeb中配置伪静态。
如下:
设置项目伪静态
修改crmeb/public目录下的nginx.htaccess,增加如下规则:
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
重启nginx后,不在出现404,可以正常访问页面和路由。
目录分析
CRMEB系统采用前后端分离技术,基于TP6+Vue2.5+Uniapp框架开发;支持微信小程序、公众号、H5、APP、PC端适配,数据同步!是一套单商户新零售社交电商系统。
下面是对CRMEB-V5.4版本结合官方文档的目录分析:
├─crmeb #后端项目
│ ├─app #应用目录
│ │ ├─adminapi # 后台接口模块
│ │ ├─api # 接口模块
│ │ ├─dao # 数据访问层
│ │ ├─http # 全局中间件
│ │ ├─kefuapi # 客服
│ │ ├─model # 模型层
│ │ ├─services # 服务层
│ │ ├─lang # 语言包
│ │ ├─listener # 监听
│ │ ├─outapi
│ │ ├─AppService.php
│ │ ├─build.php
│ │ ├─common.php # 函数文件
│ │ ├─event.php # 事件注册设置文件
│ │ ├─ExceptionHandle.php # 异常处理
│ │ ├─middleware.php # 应用中间件
│ │ ├─provider.php # 容器Provider定义文件
│ │ ├─Request.php
│ │ └─service.php
│ ├─backup # 备份目录
│ ├─config # 应用配置目录
│ ├─crmeb # crmeb核心包 (类似TP中的lib,这里是官方封装的基类)
│ │ ├─basic # 基础类
│ │ ├─command # 命令
│ │ ├─exceptions # 错误信息
│ │ ├─interfaces # 接口
│ │ ├─jobs # 队列
│ │ ├─services # 服务
│ │ ├─subscribes # 事件
│ │ ├─utils # 帮助类
│ ├─public # WEB目录(对外访问目录)
│ │ ├─admin # 后台页面文件
│ │ ├─install # 安装入口文件
│ │ ├─static # 静态资源文件
│ │ ├─system # 后台静态资源文件
│ │ ├─uploads #上传文件
│ │ ├─index.html # h5入口文件
│ │ ├─uploads #上传文件
│ │ ├─index.php #入口文件
│ │ ├─router.php # 快速测试文件
│ │ └─.htaccess # 用于apache的重写
│ ├─runtime # 应用的运行时目录
│ ├─vendor # 第三方插件
│ ├─.env # 数据库配置文件
│ └─think.php # 命令入口文件
├─template # 后端vue页面
├── public # 静态资源
│ ├── favicon.ico # favicon图标
│ └── index.html # html 模板
├── src # 源代码
│ │ ├── api # 所有请求
│ │ ├── assets # 图片、svg 等静态资源
│ │ ├── components # 公共组件
│ │ ├── i18n # 多语言
│ │ ├── layouts # 布局
│ │ ├── libs # 公共方法
│ │ ├── menu # 菜单配置
│ │ ├── mixins # 通用混合
│ │ ├── mock # 数据模拟
│ │ ├── pages # 所有页面
│ │ ├── plugins # 插件
│ │ ├── router # 路由配置
│ │ ├── store # Vuex 状态管理
│ │ ├── utils # js工具
│ │ ├── styles # 样式管理
│ │ ├── setting.env.js# 开发配置文件
│ │ ├── setting.js # 业务配置文件
│ │ ├── main.js # 入口文件 加载组件 初始化等
│ │ └── App.vue # 入口页面
│ ├── tests # 测试管理
│ ├── alias.config.js # 别名,仅用于配置 WebStorm 识别别名,
│ ├── babel.config.js # babel 配置
│ ├── jest.config.js # jest 配置
│ ├── package.json # package.json
│ └── vue.config.js # Vue CLI 3 配置
请求流程
请求流程省略了很多细节,只是简单的节点分析,如下:
入口文件->Vue->路由->中间件->控制器->服务层->dao(数据访问层)->模型层->vue渲染后呈现给用户
总结
本篇主要是CRMEB电商系统安装和遇到问题的解决方法及一些简单的分析。