0x01 前言

如果有多个业务系统对外提供服务,那么一个状态展示系统可以为客户提供直观的服务状态展示。当出现系统故障或安排更新计划时可以为客户提供一个信息公开的平台,以便作出相应的准备。

经过寻找后,我决定使用一款名为Cachet的开源软件,它支持部署在Linux、Windows与Docker环境中,而在我的应用环境中,我将部署在centos 7里。

0x02 准备

Cachet需要PHP的支持,需要选择PHP 5.6.4或以上的版本,但对PHP 7的支持不太友好。

在实际的测试中,Cachet v2.4.0是支持PHP 7的,但在调用某些API时出现500错误,经过了解后发现v2.4.0还处于开发状态,因此建议部署PHP 5.6的最新版本并使用v2.3.9的Cachet。

首先需要准备LNMP环境,或者像我一样准备LNMPA环境,具体的的配置过程可以参考以下文章:

至于数据库的部分,可以选择以下数据库:

  • MySQL
  • PostgreSQL
  • SQLite

在我的环境中会使用MySQL,如果没有相关的数据库环境,可以选用SQLite。

首先新建数据库用户以及数据库:

然后新建相关目录并进入该目录:

clone源码并切换分支:

先来查看源码跟目录下的文件与文件夹:

需要注意的是.env.example,这个是配置文件的模版,下面需要配置这个文件。

0x03 配置文件

先复制一份:

配置文件有以下内容:

其实这个文件里除了默认地址与数据库信息以外,其他参数都不需要配置,因为等下安装完成后,首次通过浏览器打开cachet会有一个配置过程。

0x04 安装

安装过程需要用到composer,可以通过以下命令一键安装:

如果你是按照我的文章编译的PHP,那么可能会出现以下告警:

这时候需要执行以下命令,将php的可执行文件链接到相关的文件夹即可:

然后再次执行安装composer的命令即可:

完成后进入cachet的源码文件夹并执行composer install:

最后出现以下提示:

然后执行以下命令生成APP_KEY,这个命令会自动生成base64字符串并替换配置文件中的APP_KEY:

在进行下一步时,如果使用mysql作为数据库,则需要确认配置文件中数据库的信息是否正确,确认无误后即可执行以下命令:

执行完该命令后会在数据库中建立相关的表:

0x05 ngx、http与fpm

首先配置nginx,以下是我的nginx配置文件:

以下是apache的配置文件:

以下是我的php-fpm配置文件:

为了安全起见,需要给php-fpm分配一个低权限用户,可以通过以下命令新建:

然后重命名cachet的文件夹名称并修正权限:

一切完成后就启动各个服务,最终通过浏览器打开配置文件中所配置的域名。

但在首次打开会出现HTTP 500的错误,这时候需要删除以下文件:

使用以下命令即可:

再次尝试通过浏览器打开: