CentOS 7 安装部署chemex开源资产管理系统
咖啡壶是开源、高颜值的IT资产管理平台。资产管理、归属、追溯、盘点以及轻量的服务器状态面板。支持导出导入、LDAP、自定义字段等。基于优雅的Laravel框架和DcatAdmin开发。
参考网址:https://github.com/celaraze/chemex/blob/main/docs/%E5%AE%89%E8%A3%85.md
git:用于管理版本,部署和升级必要工具。
PHP:仅支持 PHP8.1。
composer:PHP 的包管理工具,用于安装必要的依赖包。
MySQL 5.7:数据库引擎,理论上 MariaDB 10.2 + 兼容支持。
ext-zip:扩展。
ext-json:扩展。
ext-fileinfo:扩展。
ext-ldap:扩展。
ext-bcmath:扩展。
ext-mysqli:扩展。
ext-xml:扩展。
ext-xmlrpc:扩展。
以上扩展安装过程注意版本必须与 PHP 版本一致。
2.1、操作系统
此次部署固定资产管理系统使用的是Linux系统。CentOS 7.9,如何安装不做介绍。关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config
修改好后,记得重启系统
reboot # 重启linux系统
# 安装yum-utils 工具
yum install -y yum-utils
# 安装依赖
yum install openssl-devel gcc gcc-++ gcc-c++ wget make libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel bison autoconf sqlite-devel oniguruma-devel git
# 更换yum源 (提示有错误就换下一个)
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
#为PHP 8。1启用流模块
yum-config-manager --disable 'remi-php81*'
yum-config-manager --enable remi-php81
#安装php81-php 8及扩展:
yum install -y php81-php php81-php-cli php81-php-fpm php81-php-mysqlnd php81-php-zip php81-php-devel php81-php-gd php81-php-mbstring php81-php-curl php81-php-xml php81-php-pear php81-php-bcmath php81-php-json php81-php-redis php81-php-xmlrpc php81-php-fileinfo php81-php-mysqli php81-php-ldap
不加81,无法显示版本,实际上就是环境变量没有配置好,但这情况会影响后续安装composer 工具,因此我们需要搞定。
1.使用文件搜索命令,查看你的php 实际部署路径在哪里
[root@ITMS ~]# find / -name php.ini
/etc/opt/remi/php81/php.ini
2.创建软连接
ln -sf /opt/remi/php81/root/usr/bin/php* /usr/local/bin
现在再操作 php -v 就ok了
搜索php.ini 在哪里,然后修改php.ini 文件
[root@ITMS ~]# find / -name php.ini
/etc/opt/remi/php81/php.ini
[root@ITMS ~]#
php 安装成功 修改php.ini文件
vim /etc/opt/remi/php81/php.ini
zlib.output_compression = On
修改后,注意保存
启动php
systemctl start php81-php-fpm
状态查看
systemctl status php81-php-fpm
centos平台编译环境使用如下指令
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
useradd www -s /sbin/nologin
wget http://nginx.org/download/nginx-1.22.1.tar.gz 下载
tar zxvf nginx-1.22.1.tar.gz 解压
进入解压后的nginx目录
cd nginx-1.22.1
编译:
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-file-aio
编译安装:
make && make install
nginx 安装完成
查找nginx.conf 配置文件安装路径
[root@ITMS ~]# find / -name nginx.conf
/root/nginx-1.22.1/conf/nginx.conf
/usr/local/nginx/conf/nginx.conf
[root@ITMS ~]#
vim /usr/local/nginx/conf/nginx.conf
复制下面的代码,粘贴到 nginx.conf 文件中,注意文件格式。记得保存
server {
listen 80;
index index.php index.html;
root /opt/var/www/chemex/public/; #源码目录
try_files $uri $uri/ /index.php?$args; #伪静态规则
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /opt/var/www/chemex/public$fastcgi_script_name;
include fastcgi_params;
}
}
启动nginx
/usr/local/nginx/sbin/nginx -s reload
如果出现报错:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed
则运行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nginx 启动,关闭,重启,命令
./nginx 启动
./nginx -s stop 关闭
./nginx -s reload 重启
./nginx -c /usr/local/nginx/sbin/nginx.conf 指定配置文件启动
nginx对上传文件大小有限制,而且默认是1M。另外,若上传文件很大,还要适当调整上传超时时间
client_max_body_size 50m;//限制请求体的大小,若超过所设定的大小,返回413错误。
client_header_timeout 1m; //读取请求头的超时时间,若超过所设定的大小,返回408错误。
client_body_timeout 1m; //读取请求实体的超时时间,若超过所设定的大小,返回413错误。
proxy_connect_timeout 60s;//http请求无法立即被容器(tomcat, netty等)处理,被放在nginx的待处理池中等待被处理。此参数为等待的最长时间,默认为60秒,
proxy_read_timeout 1m; //http请求被容器(tomcat, netty等)处理后,nginx会等待处理结果,也就是容器返回的response。此参数即为服务器响应时间,默认60秒。
proxy_send_timeout 1m; //http请求被服务器处理完后,把数据传返回给Nginx的用时,默认60秒。
vim /etc/yum.repos.d/mysql.repo
[mysql]
name= mysql8.0
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-x86_64/
enable=1
gpgcheck=0
更新镜像源:
yum clean all && yum makecache #清除缓存 生成缓存
#安装mysql 和查看 初始密码
yum install mysql-community-server -y
systemctl enable --now mysqld
grep "password" /var/log/mysqld.log
登录数据库 初始密码:5&A/glYm.R)b
mysql -uroot -p
使用初始密码登录,输入任何命令都会报错。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Asdf_jj!@#@123'; #修改新密码第一次要用复杂点的密码,否则会报错
set global validate_password.policy=0; #关闭密码复杂度检查
ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin@123'; #修改密码为 admin@123
create database chemex; #创建chemex 数据库
create user 'chemex'@'%' identified by 'admin@123'; #创建数据库用户:chemex和密码:admin@123
grant all privileges on chemex.* to 'chemex'@'%'; #赋予用户chemex 权限只能访问chemex 库
flush privileges; #刷新策略
数据库就创建完毕了
开启mysql 远程连接,按需配置
[root@ITMS ~]# vim /etc/my.cnf #修改配置文件
CREATE USER 'root'@'%' IDENTIFIED BY 'admin@123'; #创建新用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; #授权远程登录
示例:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'指定的IP地址' IDENTIFIED BY '您的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES; 更新策略
systemctl restart mysqld #修改好后,重启mysql服务
连接成功
确保系统环境中 可执行 php -v。
curl -sS https://getcomposer.org/installer | php81
mv composer.phar /usr/local/bin/composer
composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer
出现下图,代表安装成功:
composer #查看是否安装成功。
mkdir -p /opt/var/www && cd /opt/var/www
git clone https://gitee.com/celaraze/chemex.git . 克隆数据,github 国内可能会失败,可以先下载下来。
参考网址:https://github.com/celaraze/chemex/blob/main/docs/%E5%AE%89%E8%A3%85.md
配置文件权限
chmod -R 777 storage
cp .env.example .env
vim .env
DB_CONNECTION=mysql #数据库类型,不需要修改(兼容mariadb)
DB_HOST=127.0.0.1 # 数据库地址
DB_PORT=3306 # 数据库端口号
DB_DATABASE=chemex # 数据库名称
DB_USERNAME=chemex # 数据库用户名
DB_PASSWORD=admin@123 # 数据库密码,自己在MySQL中的配置的密码
composer install
注意上面的命令,在那个路径下执行
[root@ITMS chemex]# composer install
php artisan chemex:install
安装成功
打开网页出现以下报错,那是因为cache 文件未开启写权限,可以给他授权权限即可
chmod 777 /opt/var/www/bootstrap/cache
设置CentOs 7的更新源可以按照以下步骤进行:
1.备份原有的yum源文件:
cp /etc/yum.repos.d/centos-Base,repo /etc/yum.repos.d/centos-Base.repo.bak
2.切换到阿里云的yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3.添加EPEL源:
wget -p /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
查看全部信息:
[zhangsan@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
查看linux内核信息:
[zhangsan@localhost ~]$ uname -r
3.10.0-693.el7.x86_64
查看linux版本号:
[zhangsan@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
Linux(Centos 7) Minimal 安装后,由于没有预装wget,在使用wget命令去下载安装相关应用时,提示:“wget: command not found”
先在Linux服务器窗口中,输入如下命令,检查Linux服务器有没有安装过wget。
rpm -qa | grep "wget"
。
登录wget官网下载地址,下载最新的wget的rpm安装包到本地
官网地址:http://mirrors.163.com/centos/7/os/x86_64/Packages/
将下载好的wget的rpm安装包通过Xftp工具上传到Linux服务器对应目录下。
如我们在/usr/local目录下手动创建一个wget文件目录,然后将下载好的wget-1.14-18.el7_6.1.x86_64.rpm通过Xftp工具上传到这个wget目录下
进入上传目录,安装wget
# 进入wget安装目录
cd /usr/local/wget
# 安装wget
rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
# 查看wget是否安装
rpm -qa | grep wget
# 查看wget的版本信息
wget -V
设置CentOs 7的更新源可以按照以下步骤进行:
1.备份原有的yum源文件:
cp /etc/yum.repos.d/centos-Base,repo /etc/yum.repos.d/centos-Base.repo.bak
2.切换到阿里云的yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3.添加EPEL源:
wget -p /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
登录root用户,用vim /etc/resolv.conf ,打开rsolv.conf,添加DNS地址
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 223.5.5.5
nameserver 223.6.6.6
(nameserver 223.5.5.5 和 nameserver 223.6.6.6选择其中一个添加即可)
更新镜像源
# 清除缓存
yum clean all
# 生成缓存
yum makecache
启动EPEL软件源
yum install epel-release
[root@dhcp-1 ~]# yum -y install ifconfig gcc netsat lsof ftp net-tools git tar make
gitee 里的代码,否则会报错。
https://gitee.com/carlson/chemex/tree/main
安装
chemex 是个标准的 Laravel应用程序,也适用于所有的 LNMP/WNMP/DNMP 环境,虽然部署方式有很多,但仍然强烈建议使用 Docker 方式部署。
Docker
Docker 部署方式不会建立数据库容器,也意味着你必须有一个已有的数据库,在启动 chemex 后需要对 .env 文件做配置。
docker pull celaraze/chemex:latest
注意 your_path 为你的宿主机某个目录,chemex 根目录有一个 .env.example 的环境变量配置文件,复制这个文件到 your_path 下并改名为 .env,然后修改 .env 中的数据库连接信息。
docker run -itd --name chemex --restart=always -p 8000:8000 -v /your_path/.env:/var/www/html/laravel/.env celaraze/chemex:latest
即可通过 http://127.0.0.1:8000 访问 chemex。
初始化数据库:如果您是第一次使用 chemex,则需要执行数据库迁移。docker exec -it chemex /bin/bash 进入 docker 容器执行命令: cd /var/www/html/laravel && php artisan chemex:install。
手动部署
先决条件
git:用于管理版本,部署和升级必要工具。
PHP:仅支持 PHP8.1。
composer:PHP 的包管理工具,用于安装必要的依赖包。
MySQL 5.7:数据库引擎,理论上 MariaDB 10.2 + 兼容支持。
ext-zip:扩展。
ext-json:扩展。
ext-fileinfo:扩展。
ext-ldap:扩展。
ext-bcmath:扩展。
ext-mysqli:扩展。
ext-xml:扩展。
ext-xmlrpc:扩展。
以上扩展安装过程注意版本必须与 PHP 版本一致。
安装步骤
生产环境下为遵守安全策略,非常建议在服务器本地进行部署,暂时不提供相关线上初始化安装的功能。因此,虽然前期部署的步骤较多,但已经为大家自动化处理了很大部分的流程,只需要跟着下面的命令一步步执行,一般是不会有部署问题的。
为你的计算机安装 PHP8.1 环境,参考:PHP官方 。
为你的计算机安装 MySQL 或者 mariadb。
在你想要的地方,执行 mkdir chemex && cd chemex。
执行 git clone https://gitee.com/celaraze/chemex.git .,注意末尾的 . 也是需要包含的。
执行 git submodule init && git submodule update。
执行 cp .env.example .env。
根据 .env 文件中注释的指引进行配置。
执行 composer install -vvv 安装依赖。
你可能使用的web服务器为 nginx 以及 apache,无论怎样,应用的起始路径在 /public 目录,请确保指向正确,同时程序的根目录权限应该调整为:拥有者和你的 Web 服务器运行用户一致,例如 www 用户,且根目录权限为 755。
/storage 目录设置为 755 权限。
/public 目录设置为 755 权限。
修改web服务器的伪静态规则为:try_files $uri $uri/ /index.php?$args;。
执行 php artisan chemex:install。
此时可以通过访问 http://your_domain 来使用咖啡壶。管理员账号密码为:admin / admin。