【大树云小课堂】-大树云 BTC 应用服务器搭建

⼀、应⽤服务器简介
应用服务器作为直接面向⽤户 APP 的接口服务器,负责接收设备服务器传输的数据,提供设备状态信息
以及⽤户信息给客户端,并且转发用户对设备操作至设备管理器。

⼆、环境搭建
● PHP Version:7.3
● topthink/framework Version:v5.0.23
● 通信协议:HTTP

1. 安装 httpd

为了将 Apache 和 PHP 关联生成 libphp7.so 文件,需要在安装 PHP 之前安装 Apache :



另外需要安装 httpd-devel ,如果没有 httpd-devel ,在安装 PHP 时不会生成 libphp7.so 文件:



2. PHP 编译安装

2.1 新增用户组和用户

新增的用户组和用户是用于在编译时指定执行的用户组和用户:



2.2 下载 PHP 镜像

获取源码并解压, wget -O 命令是将下载的文件重命名:



2.3 安装依赖库包

安装 php 7.3.1 需要的一些依赖库包和一些其他依赖的扩展库:



另外,需要先删除旧版本的 libzip ,然后手动下载最新版源码编译安装,否则版本过低会出现编译失败:



2.4 编译安装

编译前需要先将搜索路径添加进配置文件,然后更新配置:



使⽤ Configure 脚本根据系统开发环境生成 Makefile 文件,其中 --with-fpm-user --withfpm-group 分别指定了用户和⽤户组为 www ,而 --with-apxs2 指定 Apache 加载⽣成 libphp7.so :



2.5 编译安装

需要先复制 zipconf.h ,否则会出现文件缺失编译失败:



成功⽣成 Makefile 文件后就可以用 make & make install 命令进⾏编译:



最后复制关键文件到目标位置:



3. 配置 Apache

3.1 关联 PHP


通过 yum 安装的 httpd ,能够在 /etc/httpd/conf 中找到 httpd 的配置文件 httpd.conf ,因为编译安装时加入了 --with-apxs2 ,安装完成后 httpd.conf 已经⾃自动加载了 PHP ,在 LoadModule 中有一句:



如果发现没有自动加载,那就手动添加:



3.2 解析 PHP

在 IfModule dir_module 添加上 index.php :



在 IfModule mime_module 中的 AddType 后面加上三句:



3.3 修改 Web 路径

修改 DocumentRoot 和 <Directory "/var/www/html"> , Apache 默认的根目录是 /var/www/html ,可以修改成指定的目录:



然后生成 phpinfo() ⽂件,重启 Apache :



然后打开 localhost 查看网⻚运行 phpinfo 。

3.4 问题解决

如果出现 403 禁⽌访问错误:



可能是没有权限造成的异常,⾸先查看当前运行服务的⽤户:



1. 将 httpd.conf 中的用户和用户组改成当前用户的:



2. 然后将 Web 文件夹的用户和权限修改,重启 Apache ,就可以查看访问⽹页了:



如果还不行,就检查 SELinux 是否启⽤状态:



1. 如果 SELinux status 是启用状态 enabled ,将 SELinux 临时关闭,设置为 permissive 模式( setenforce 0 为 enforcing 模式):



2. 永久关闭可以修改 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=disabled 。

三、框架搭建
⼤树云-BTC 应用服务器是基于开发框架 ThinkPHP5 进⾏开发的, ThinkPHP5 是⼀个免费开源的,快速、简单的面向对象的轻量级 PHP 开发框架, ThinkPHP5 支持 Composer 安装。

1. Composer 安装

如果没有安装 Composer ,下⾯介绍⼀下 Composer 的安装,详细资料可以查看 Composer 中⽂文档 中的安装方法:

Mac/Linux 安装 Composer

在 Mac OS X 和 Linux 系统,只需要在终端执行下列指令即可安装:



Windows 安装 Composer

在 Windows 系统中,可以下载并运⾏行行 Composer-Setup.exe 进行安装。

2. ThinkPHP 安装

如果已经安装有 Composer ,⾸先应该更新为最新版本,可以在终端中执行以下命令进行更新:



然后切换到 web 工作根目录下⾯并在终端执行以下命令进行安装:



3. 配置 ThinkPHP

3.1 修改 Apache ⼯作⽬录

修改 Apache ⼯作目录指向 TP5 框架的 public :



3.2 配置路路径重写

如果发现 thinkphp5 不解析路由时,应该检查是否开启了 mod_rewrite ,在 phpinfo 中查看 Loaded Modules ,其中列出了所有 apache2handler 已经开启的模块
看是否包含了 mod_rewrite 。如果没有开启 mod_rewrite ,则修改 httpd.conf ⽂文件,在 LoadModule 下添加:



然后将 httpd.conf 中的所有 AllowOverride None 修改为 AllowOverride All ,重启 Apache 后就可以正常访问了。

四、模块划分
⼤树云应用服务器主要划分为三个模块进⾏开发,分别是:用户、设备和 OTA 升级。

1. ⽤户模块

⽤户模块主要负责处理理用户个人操作,包括⽤户注册、登入、登出、变更密码以及⽤户验证,并且存储⽤户个人信息。

2. 设备模块

设备模块包括操作设备和推送设备信息两⽅面。

2.1 操作设备

在 App 端,⽤户能够对设备进行操作,在用户访问应⽤服务器的操作设备接⼝时,应用服务器会对设备服务器发起连接请求,由设备服务器对⽬标设备进行操作,经由应⽤服务器处理后反馈到 APP 。

2.2 设备上传状态

在设备服务器端,可以进行设备信息推送的操作,由设备服务器发起与应⽤服务器的连接,将设备信息推送至应用服务器,由服务器存储⾄数据库中。

3. OTA 升级模块

应用服务器的 OTA 升级模块包括了固件包上传和 OTA 升级。
固件包上传操作不仅将 Bin 文件的文件信息存储入数据库,并将 Bin 文件上传至服务器。
而 OTA 升级则是将 OTA 升级信息发送至设备服务器,由设备服务器进行处理。

五、CURL 库
在应用服务器访问设备服务器需要用到 CURL 库,可以通过 CURL 发起 HTTP 请求,在实际应用中能够对 CURL 进行简单的封装,如下:



更多资讯,请关注⼤树云系列公众号:

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能