多说一句,阅读提醒!

有点标题党了,但不夸张。实现“1天搭建”的前提是有Linux服务器命令行操作基础能力、git指令,懂Docker,有基础的微信小程序开发hello world水平;“免费”的定义是不为这个小程序商店额外付几百几千甚至上万的年费、软件服务费,开店所需要的服务器、域名、微信小程序认证费、微信支付的开通等等费用还是要的,如果这段话大部分内容你看不懂,那么大概率你没办法“1天”和“免费”搭建出来一个卖茶的小程序,该花的钱还是得花,找专业的小程序服务商吧。

  • 前言

众所周知(笑),作为程序猿,最近卖茶了,除了淘宝店顺利开张了,其它都多多少少有各种门槛(说人话就是要钱),包括但不限于企业营业执照,食品经营许可证以及各种保证金、服务费……

一怒(笑)之下,打算翻出老本行还是自己搞吧,综合考虑了下,选择在微信小程序上开店(虽然微信官方也有企业公众号开店、视频号开店和已经停滞的微信小商店等好几种模式,但腾讯搞电商总差点意思……综合考虑了下,还是小程序最具备推广前景,也能兼顾后面自己搞独立APP)。

  • 微信小程序商店组成部分

先简单说一下,一个微信小程序商店的基本组成有3部分:小程序端(相当于app客户端),服务端(小程序要用的后台数据接口、数据库和文件存储),管理端(可以和服务端部署在一起,是管理服务器数据的),我们依次安装服务端、管理端,最后调试小程序端。

为了方便大家,特别是不会写代码搞Linux服务器的小伙伴(前面会写详细的镜像制作过程,看不懂的可以跳过,只需稍等文章写完,等最后镜像做好了直接用就行),我选用开源方案海风小店(不用自己写代码),采用docker容器的方式部署,等全部完成以后会把整个商店打包成Docker镜像,有需要的小伙伴到时下载镜像,可以一键部署了。

  • 服务端部署

首先,你得有一台Linux服务器,我选用了Ubuntu 22.04(以前习惯用CentOS,但现在yum里缺的东西太多,不方便了),在阿里云上部署(帮阿里打广告了,现在有99一年的优惠服务器,性能够用了,ICP备案也快速点)。然后你得SSH连接到服务器,准备开始安装部署工作。

先安装docker,以及mysql等基础镜像环境。
image

1
2
apt update
apt install docker.iosystemctl enable docker //保证docker每次重启服务器能自动启动systemctl start dockerdocker ps //有正常输出,就准备好镜像部署环境了docker pull mysql:5.7 //拉取mysql数据库镜像,记得使用5.7版本,最新是8.0有许多不便

image

  • 数据库准备

我们将数据库文件放到单独的目录下,防止放到容器里不方便备份,例如mkdir /opt/mysql。现在,初始化一个mysql数据库的docker实例,并创建一个数据库表meiwutea供服务端软件使用:

1
docker run --name mysql -p 3306:3306 -ti --privileged=true -v /opt/mysql:/var/lib/mysql -e MYSQL_DATABASE=meiwutea -e MYSQL_USER=meiwutea -e MYSQL_PASSWORD=meiwutea.com -e MYSQL_ROOT_PASSWORD=meiwutea.com -d mysql:5.7//注意把管理员密码meiwutea.com等参数改成你自己的,然后阿里云主机上打开3306 tcp端口以供外网访问。

image

下载mysql数据库客户端MySQL Workbench( https://dev.mysql.com/downloads/workbench/ ),方便管理数据库:
image

**也可以直接在服务器后台,通过:

1
docker exec -ti mysql mysql -uroot -p

登录到mysql实例管理后台,通过命令行方式管理数据库。
image

成功连接后,表示数据库已经工作正常,可以下载代码进行实际部署了。

  • 代码准备
1
git clone https://github.com/iamdarcy/hioshop-server

取出其中sql数据库备份文件,可以服务器后台用mysql命令行导入,也可以用上文的客户端导入:
image

完成后,可看到数据库中已经有数据了:
image

修改源码中的配置文件:
hioshop-server/src/common/config/database.js

1
2
const mysql = require('think-model-mysql');
module.exports = {handle: mysql,database: 'meiwutea',prefix: 'hiolabs_',encoding: 'utf8mb4',host: '127.0.0.1',port: '3306',user: 'meiwutea',password: 'meiwutea.com',dateStrings: true};
  • 服务器端容器创建(镜像的基础)
1
2
docker pull ubuntu //我们再拉一个ubuntu的docker镜像,用它创建一个实例docker run --name meiwutea-server -p 8080:8306 -ti -d ubuntu //避免与主机端口冲突,将容器内8306服务器端口映射到主机8080端口docker exec -ti meiwutea-server bash //进入容器,以下加黄命令为容器内指令apt update
apt install nodejs npmnodejs -v //有正常输出表示容器内nodejs环境已经就绪,可以部署代码

CTRL+D退出容器回到主机环境中,将服务器端代码复制到容器内:

1
docker cp hioshop-server/ meiwutea-server:/opt 

再次进入容器:

1
2
3
docker exec -ti meiwutea-server bash
cd /opt/hioshop-server
npm installnpm start

image

如果一切正常,打开你的服务器址加8080端口,就可以看到一个网页,表示服务端已经安装完毕:
image

下一篇,将测试小程序对接该服务端数据(此时,还仅有测试数据)。