咖啡壶(Chemex)是一个轻量的、现代设计风格的 ICT 资产管理系统。完全免费且开源,任何人都可以无限制的修改代码以及部署服务,这对于很多想要对 ICT 资产做信息化管理的中小型企业来说,是一个很好的选择。
chemex 是个标准的 Laravel 应用程序,适用于所有的 LNMP/WNMP/DNMP 环境,虽然部署方式有很多,但仍然强烈建议使用 Docker 方式部署。
我这里用的操作系统是 Centos7,部署步骤如下;
1.防火墙设置
#临时关闭SELinux
setenforce 0
#永久关闭SELinux(重启生效)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#临时关闭防火墙
systemctl stop firewalld.service
#永久关闭防火墙
systemctl disable firewalld.service
2.安装 Docker
#安装最新版Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#启动docker
systemctl start docker
#设置开机启动docker
systemctl enable docker
3.Docker中安装Mariadb数据库
3.1 下载Mariadb镜像
#搜索mariadb镜像(非必须)
docker search mariadb
#下载Mariadb镜像(下载的是最新版本)
docker pull mariadb
#想要下载指定版本执行的命令为
docker pull mariadb:10.6
#查看已有的所有镜像
docker images
3.2 创建容器,并映射目录
为了持久化存储MariaDB的数据,可以将主机上的目录挂载到容器中。这样,MariaDB的数据将存储在主机上的目录中,即使容器被删除或重新创建,数据也不会丢失。
#创建一个目录作为和容器的映射目录
mkdir -p /data/mariadb/data
使用以下命令创建并运行MariaDB容器,并将数据目录挂载到主机上的/data/mariadb/data目录:
docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=P@ssw0rd@123 -v /data/mariadb/data:/var/lib/mysql -d mariadb:10.6
- --name启动容器设置容器名称为mariadb
- -p设置容器的3306端口映射到主机3306端口
- -e MYSQL_ROOT_PASSWORD设置环境变量数据库root的用户密码为P@ssw0rd@123
- -v设置容器目录/var/lib/mysql映射到本地目录/data/mariadb/data
- -d后台运行容器mariadb并返回容器id
3.3 查看容器是否启动成功,修改容器为自启动
#查看正在运行的容器
docker ps
#修改容器为自启动
docker container update --restart=always 容器名
3.4 进入容器,并登录Mariadb数据库
#进入容器
docker exec -it 容器名 /bin/bash
#登录Mariadb数据库
mysql -u root -p
#创建chemex数据库
create database chemex;
#创建用户chemex,并让它可以远程登录(@'%'),密码是chemex
create user chemex@'%' identified by 'chemex';
#创建本地用户
create user chemex@'localhost' identified by 'chemex';
#查看所有用户
select host,user from mysql.user
#查看所有数据库
show databases;
#授予chemex用户访问chemex数据库的权限
grant all privileges on chemex.* to chemex;
#刷新权限
flush privileges;
4.安装Chemex
4.1下载Chemex镜像
docker pull celaraze/chemex:latest
4.2本机创建存放laravel配置文件的目录
#创建chemex目录并切换到这个目录下
mkdir /usr/local/chemex && cd /usr/local/chemex
4.3先建立一个空文件
如果不提前创建名为".env"的文件,,则在创建chemex容器时容器中会生成名为".env"的文件夹。
#创建.env文件
touch .env
4.4创建chemex容器
docker run -itd --name chemex --restart=always -p 8000:8000 -v /usr/local/chemex/.env:/var/www/html/laravel/.env celaraze/chemex:latest
从容器中拷贝环境配置文件/var/www/html/laravel/.env.example 到本机替换刚刚的空文件.env
#查看chemex容器的信息,主要是获取容器ID
docker ps | grep chemex
#复制容器中的.env.example到本机
docker cp fd45eafffd29:/var/www/html/laravel/.env.example ./
#复制.env.example文件替换.env文件
cp .env.example .env
4.5确认Mariadb的IP及容器间网络互通性
查看容器的ip地址:
docker inspect bridge
#进入容器chemex
docker exec -it chemex /bin/bash
#默认容器是没有ping功能的,通过下面的命令安装
apt-get update && apt-get install iputils-ping
然后ping 172.17.0.2 即在容器chemex内ping容器mariadb的IP,正常情况下是网络是通的。
4.6按说明修改.env文件
一般只需要修改数据库的相关连接配置信息;
注意:DB_HOST=数据库的容器名
### 第一步:数据库配置
#数据库类型,不需要修改(兼容mariadb)
DB_CONNECTION=mysql
# 数据库地址,这里在容器里安装的mariadb数据,DB_HOST应该为容器名字
DB_HOST=mariadb
# 数据库端口号,mysql默认是3306
DB_PORT=3306
# 数据库名称,如果没有此数据库,后续会提示创建
DB_DATABASE=chemex
# 数据库用户名
DB_USERNAME=chemex
# 数据库密码
DB_PASSWORD=chemex
9.重启chemex,进入容器初始化
#重启容器chemex
docker restart chemex
#修改容器为自启动
docker container update --restart=always chemex
#进入容器chemex
docker exec -it chemex /bin/bash
#初始化安装chemex系统
cd /var/www/html/laravel && php artisan chemex:install
出现下图说明初始化完成;
通过http://宿主机ip:8000访问chemex提示如下错误:
如果访问提示The /var/www/html/laravel/bootstrap/cache directory must be present and writable.
需要在docker里修改bootstrap的权限为777
chmod -R 777 bootstrap
至此,chemex安装成功。
本文暂时没有评论,来添加一个吧(●'◡'●)