• Stars
    star
    185
  • Rank 208,271 (Top 5 %)
  • Language
    JavaScript
  • Created almost 7 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

使用docker compose 快速的安装fecshop的环境,包括mysql php(含扩展),mongodb,mysql,redis,xunsearch等

Fecshop 全称为Fancy ECommerce Shop,是基于php Yii2框架之上开发的一款优秀的开源电商系统, Fecshop支持多语言,多货币,架构上支持pc,手机web,手机app,和erp对接等入口,您可以免费快速的定制和部署属于您的电商系统。

Fecshop Github地址: https://github.com/fancyecommerce/yii2_fecshop

Fecshop Docker

1.Fecshop-1.x版本的Docker安装参看:Fecshop-1.x版本Docker安装教程

2.Fecshop 2.1和2.2版本,参看文档:Fecshop-2.x版本Docker安装教程

3.Fecshop 2.3以上的版本,参看本文安装教程(2.3.2版本以上)

网络问题说明

docker-compose.yml,默认使用的是国外的源,如果您是国内的服务器,可能会遇到某些包被墙 ,您可以按照下面的方法,使用阿里云的源,适合国内的用户下载安装docker环境

国内用户,如果您在docker环境构建的过程中,出现因为网速问题,导致的安装失败,可以将 docker-compose.yml.aliyun 内容覆盖 docker-compose.yml ,全部使用阿里云 的镜像(镜像是由fecshop上传的)。

目录结构介绍

目录结构介绍

安装docker和docker compose

linux内核需要大约3.1.0 ,下面是centos 7 下面部署的过程:

1、安装docker

sudo curl -sSL https://get.daocloud.io/docker | sh

2、安装 docker compose,资料:install-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

docker compose 安装部署环境

下载当前库文件,通过git clone下载:

mkdir -p /www/web
cd /www/web
git clone https://github.com/fecshop/yii2_fecshop_docker.git

1.进入上面下载完成后的文件夹 yii2_fecshop_docker,打开 docker-compose.yml

1.1更改mysql的密码:

- MYSQL_ROOT_PASSWORD=fecshopxfd3ffaads123456

1.2更改redis的密码:(如果您不需要redis,那么这个部分忽略,fecmall默认不需要redis)

打开文件:`./db/redis/etc/redis-password`,更改里面的redis密码即可。

mysql和redis的密码要记住,后面配置要用到。

2.构建:

启动docker

service docker start

第一次构建需要下载环境,时间会比较长,除了下载docker中心的镜像,还要构建镜像 看网速,如果用阿里云,15分钟差不多完成,使用下面的命令构建环境

chmod 755 /usr/local/bin/docker-compose
docker-compose build

网络问题解决

docker-compose.yml,默认使用的是国外的源,如果您是国内的服务器,可能会遇到某些包被墙 ,您可以按照下面的方法,使用阿里云的源,适合国内的用户下载安装docker环境

如果您在构建的过程中,出现因为网速问题,导致的安装失败,可以将 docker-compose.yml.aliyun 内容覆盖 docker-compose.yml ,全部使用阿里云 的镜像(镜像是由fecshop上传的)。

曾经有人遇到过这个问题,估计是网络问题:http://www.fecshop.com/topic/641

完成后,运行:

docker-compose up  // 按下ctrl+c退出停止。

后台运行:(守护进程的方式)

docker-compose up -d

查看compose启动的各个容器的状态:

docker-compose ps

进入某个容器,譬如php:

docker-compose exec php bash

退出某个容器

exit

停止 docker compose启动的容器:

docker-compose stop

到这里我们的环境就安装好了,也讲述了一些docker compose常用的命令, 下面我们测试一下我们的环境

启动docker ,下载安装fecshop

对于docker ,一定要切记,docker不是虚拟机!docker不是虚拟机!docker不是虚拟机! 每一个服务,对应一个docker 容器,譬如mysql 一个容器,php一个容器,redis一个容器,mongdob一个容器, 每一个容器的数据和配置文件都是在宿主主机上面,通过volumes 挂载到容器的相应文件夹中,(我们在./docker-compose.yml 配置文件中的volumes做了映射)

因此,对于docker 容器,里面涉及到存储的部分,都应该通过 挂载的方式映射到宿主机上面,而不是在容器里面。

宿主机: 就是您的linux主机

容器主机:就是docker容器虚拟的主机。

1、启动:

进入yii2_fecshop_docker目录,执行:

docker-compose up -d

2、composer 安装fecshop

我们通过命令进入到php的容器:

docker-compose exec php  bash
cd /www/web

如果您是国内的主机,可以切换composer源为阿里云源

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

最新的fecshop版本参看https://github.com/fecshop/yii2_fecshop/releases , 将2.3.2 替换成相应的fecshop版本。


composer create-project fancyecommerce/fecshop-app-advanced fecshop 2.3.2

一定要将 2.3.2 替换成最新的版本!! 一定要将 2.3.2 替换成最新的版本!!

一定要将 2.3.2 替换成最新的版本!! 一定要将 2.3.2 替换成最新的版本!!

如果你是第一次使用github,会提示需要token,参看这里获取Token:http://www.fecshop.com/topic/412

下载的时候,如果你是第一次使用github,这个地方会卡住,提示你填写github的token,获取github token 参看帖子:http://www.fecshop.com/topic/412

Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+b3817f538307+2018-06-12+1503
to retrieve a token. It will be stored in "/root/.composer/auth.json" for future use by Composer.
Token (hidden):

3.百度云盘完整版

通过百度网盘安装(不建议),如果因为墙无法使用composer,可以访问百度云盘, 下载地址为:http://pan.baidu.com/s/1hs1iC2C 下载日期最新的压缩包即可

如果您使用的是百度云盘完整版, 那么将文件解压到宿主机 ./app/ 下面即可,将文件夹的名字改成fecshop ,完成后 ./app/fecshop 就是fecshop系统包的根目录

init初始化

进入php容器(/www/web/yii2_fecshop_docker目录下执行)

docker-compose exec php  bash

进入fecshop根目录,执行init

cd /www/web/fecshop
./init

完成init初始化后,退出php容器

exit

执行完后,通过composer加载的文件就完成了。

完成后,使用exit退出php的docker容器

这样,我们部署完成了docker,并且下载了fecshop,并进行了初始化

配置fecshop

1.准备域名

Fecmall是一个多入口的电商系统,各个入口独立访问,对应独立的子域名如下:

Pc端:appfront.fecshoptest.com

后台:appadmin.fecshoptest.com

图片:img.fecshoptest.com

H5端: apphtml5.fecshoptest.com(如果不安装h5,vue等入口,可以不准备)

移动Api端:appserver.fecshoptest.com (如果不安装微信小程序,vue等入口,可以不准备)

第三方数据对接Api端:appapi.fecshoptest.com (如果不和第三方系统进行数据对接,可以不准备)

将上面的域名(替换成您自己的域名)解析到您的服务器, 如果您是在本地,可以在host文件中做虚拟域名指向127.0.0.1即可

nginx的配置文件为./services/web/nginx/conf/conf.d/default.conf

如果您使用自定义域名,将其配置域名替换即可

然后重启docker

docker-compose stop
docker-compose up -d

Fecmall界面安装

1.在上面的步骤中,配置了nginx, 您配置好域名后,appfront对应域名配置为:appfront.fecshoptest.com > $root/appfront/web/

安装入口文件为:$root/appfront/web/install.php , 打开安装地址: http://appfront.fecshoptest.com/install.php (替换成您自己的域名)

mysql的数据库和用户名密码,就是docker-compose.yml里面配置的mysql参数, 注意,host不要填写127.0.0.1,而是填写mysql

2.填写mysql的配置,点击提交

提交后,如图:

mysql的配置写入了配置文件:@common/config/main-local.php

点击按钮: 进行数据表初始化,需要一段时间执行(请耐心等待),执行完成后的界面如下:

点击测试产品数据安装,完成后界面(如果不想安装测试数据,可以点击跳过按钮)

点击下一步按钮,进入完成安装界面

您可以进入mysql查看一下数据表是否已经创建,然后查看一下product_flat表里面是否有数据,进行数据库初始化以及 测试数据安装成功确认。

3.您还需要进行如下的步骤:

3.1需要设置安全权限(根目录执行,win不需要执行):chmod 644 common/config/main-local.php

3.2删除安装文件 install.php(为了安全,一定要删除掉)(文件路径为:./app/fecshop/appfront/web/install.php),

Fecmall访问后台,进行后台配置

也就是上面配置的域名:appadmin.fecshoptest.com

初始账户密码: admin admin123

右上角切换成中文语言

首先配置图片域名

网站配置-->基础配置-->基础配置 找到图片域名,填写您的图片域名,譬如://img.fecshoptest.com (前面不要加http:,这种方式http和https都可以调用图片url,将该域名替换成您自己的域名)

3.1后台添加appfront(PC)配置,添加store

网站配置-->Appfront配置-->Store配置

可以看到store列表,点击id为1的数据(激活状态),进行编辑,将域名更改成 appfront.fecshoptest.com(替换成您自己的域名),保存

然后就可以访问:appfront.fecshoptest.com ,查看pc端了

3.2配置Apphtml5

网站配置-->Apphtml5配置-->Store配置

可以看到store列表,点击id为8的数据(激活状态),进行编辑,将域名更改成 apphtml5.fecshoptest.com(替换成您自己的域名),保存

然后就可以访问:apphtml5.fecshoptest.com ,查看H5端了

3.3配置Appserver

这里是对Appserver端的配置,对应的域名为:appserver.fecshoptest.com(替换成您自己的域名) ,是对微信小程序,vue等客户端提供api的入口

网站配置-->Appappserver配置-->Store配置

Store Key 更改成 appserver.fecshoptest.com (替换成您自己的域名)即可。

Appserver 就可以为vue和微信小程序提供api了。

其他的配置

配置完appserver.fecshoptest.com,您可以安装vue和微信小程序等客户端

vue: https://github.com/fecshop/vue_fecshop_appserver

微信小程序https://github.com/fecshop/wx_micro_program

配置开机启动docker以及docker容器

1.centos7下面开机启动docker

systemctl enable docker

2.开机启动docker-compose

vim /etc/rc.d/rc.local , 新行,添加下面的命令行

/usr/local/bin/docker-compose -f /www/web/yii2_fecshop_docker/docker-compose.yml up -d

注意,要将/www/web/yii2_fecshop_docker 替换成您自己的地址。

安装VUE部分

VUE的数据提供部分是上面的appserver入口提供的api,因此,需要上面的配置完成后,才可以配置下面的vue部分

在宿主主机中操作:

1.进入 yii2_fecshop_docker/app , 也就是将 vue_fecshop_appserver 下载到yii2_fecshop_docker/app/ 下面

参看文档:https://github.com/fecshop/vue_fecshop_appserver ,进行下载,安装环境

2.上面的文档操作过程中,到第6步完成后,执行

npm run build

就可以访问:http://vue.fecshop.com 了,因为nginx默认已经配置了这个域名,可以直接访问。

OK,fecshop docker compose的安装过程完成了。

使用phpmyadmin访问 mysql

cd ./app
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.7/phpMyAdmin-4.7.7-all-languages.zip
unzip phpMyAdmin-4.7.7-all-languages.zip
mv phpMyAdmin-4.7.7-all-languages  phpmyadmin
cd phpmyadmin/
vim libraries/config.default.php
//打开文件后,大约117行处,将
$cfg['Servers'][$i]['host'] = 'localhost';
改成
$cfg['Servers'][$i]['host'] = 'mysql';
保存退出即可

访问:my.fecshop.com 即可,mysql的密码就是docker-compose.yml文件中创建mysql容器的密码。

对于 my.fecshop.com,nginx下的配置文件已经配置好,nginx配置文件为: /services/web/nginx/conf/conf.d/default.conf

OK,是不是so easy? 不光妈妈,就连爸爸也不担心我繁琐的配置fecshop的环境,^-^,,

其他部分资料