微擎环境搭建指南


请尊重原创版权,转载注明出处。

本文基于MacOS,介绍如何定制微擎运行环境。 阅读本文之前,读者需要了解:在MacOS下通过brew安装软件包。

1. 环境搭建

1.1 下载微擎源码

可以选择下载微擎官方源码离线版,本文下载的微擎是1.0稳定版

同时,笔者将源码保存在到了github上,可以通过以下命令直接下载:

git clone https://github.com/etutorial/WeEngine.git

1.2 安装nginx

$ brew install nginx

在浏览器中输入localhost:8080,如果看到如下界面内容,表示nginx安装成功:

配置文件/usr/local/etc/nginx/nginx.conf

1.3 安装mysql

$ brew install mysql

启动mysql,设置初始化密码:

mysql.server start
mysql_secure_installation

然后,根据命令提示输入密码即可。

1.4 安装微擎

微擎依赖于php,MacOS默认自带了php,因此直接执行如下命令即可,其中/Users/duanqz/Code/WeEngine是微擎的源码目录:

$ php -S 127.0.0.1:8080 -t /Users/duanqz/Code/WeEngine

在浏览器中输入127.0.0.1:8080,出现以下界面表示php环境运行正常:

点击install.php 进入安装,按照操作提示下一步即可。其中参数配置一步,需要配置数据库连接信息和微擎后台管理员账号:

在测试环境下:

  • 数据库主机输入的是本机(127.0.0.1)的mysql
  • 数据库账号和密码是之前配置的root和12345678
  • 表前缀和数据库名称选择了默认值ims_和we7
  • 微擎的后台管理员账户/密码配置为admin/admin

成功安装微擎后,便会进入微擎后台的登录界面,输入刚才配置的管理员用户,便进入到微擎的主界面:

1.5 常见问题

1.5.1 mysql没有启动

mysql没有启动,则会报如下错误,按照上述步骤启动mysql即可。

发生错误: SQLSTATE[HY000] [2002] Connection refused

1.5.2 msql中存在重名的数据库

mysql中已经存在相同的数据库或表前缀。在重复安装微擎的运行环境时会出现如下错误。 删除mysql中的重名数据库和数据表即可。可以使用MySQLWorkbench、Navicat、TeamSQL等图形化的客户端。

发生错误: 您的数据库不为空,请重新建立数据库或是清空该数据库或更改表前缀!

1.5.3 重新安装微擎

如果需要修改数据库和数据表名,则需要重新安装微擎,删除微擎源码目录下的以下子目录即可:

data/config.php    # 微擎运行的配置信息,之前输入的数据库连接信息就保存在此文件中
data/install.lock  # 一个锁标识,标识微擎已经正确安装
data/tpl/          # 根据源码生成的最终用户界面

使用如下命令,连接数据库,可展示出数据库中微擎默认创建的数据表,删除这些表即可。

$ mysql --user=root --password we7
Enter password:  # 输入密码12345678
mysql> show tables;
+-------------------------------+
| Tables_in_we7                 |
+-------------------------------+
| ims_account                   |
| ims_account_wechats           |
| ims_account_wxapp             |
| ims_article_category          |
| ims_article_news              |
  ...  # 此处省略了很多其他表
| ims_wxapp_versions            |
| ims_wxcard_reply              |
+-------------------------------+
98 rows in set (0.01 sec)

2. 微擎定制

2.1 内网穿透

微信公众号的调试需要公网的域名,可以使用利用内网穿透技术,将一个本地的IP和端口映射成公网的域名。 笔者罗列几个可以进行内网穿透的工具:

  • NATAPP:需要注册才能使用。
  • Sunny-Ngrok:需要注册才能使用,免费版需要实名注册。
  • Go-Tunnel:无需注册,免费使用,速度有限。

读者可以从网络上搜罗到的大部分内网穿透工具都是基于ngrok的

笔者使用的是定制过的Go-Tunnel:https://github.com/etutorial/WeEngine/tree/master/gotunnel 在下载的微擎源码根目录下,执行以下命令,便可启动内网穿透:

$ cd gotunnel && ./nogrok start web 
Tunnel Status                 online
Version                       1.7/1.7
Forwarding                    http://duanqz.gotunnel.net -> 127.0.0.1:8080
Http Server                   127.0.0.1:8080 -> /Users/duanqz/Code/WeEngine
Web Interface                 disabled
# Conn                        82
Avg Conn Time                 245.97ms

正常启动时,Tunnel Status应该是online状态,内网地址127.0.0.1:8080被映射到公网的域名http://duanqz.gotunnel.net。 这里,还需简单说明一下Go-Tunnel的配置文件:

server_addr: "gotunnel.net:2333"
tunnels:
    web:   
     subdomain: duanqz
     root: "/Users/duanqz/Code/WeEngine"
     proto:
       http: ":8080"
  • 配置文件中的服务器地址server_addr可能不稳定,导致内网穿透失败,此时,读者可以将其换成其他地址
  • 配置文件中定义了一个隧道web,子域名是duanqz,端口是8080,读者可以根据自己的需要进行修改