Snipe-IT搭建

in 默认分类 with 0 comment

2023-10-11T06:14:00.png

Snipe-IT 是一个免费的开源资产/许可证管理系统,具有强大的内置功能。 它是一个基于Web 的软件,必须在Web 服务器上运行并通过Web 浏览器访问。 Snipe-IT 非常人性化,非常适合IT 运营:跟踪谁拥有哪台笔记本电脑,处理软件许可证、配件等。

前提条件

1.Centos7.5(IP地址:192.168.0.105)
2.正确时间及时区设置+外网代理(香港代理)
3.github token /*github token可查询网上如何生成,此token需赋予读写权限
4.PHP7.4.3
5.Apache 2.4.6
6.Mariadb5.5.6
7.snipeit
8.Composer(PHP依赖环境)

Composer 安装时需使用外网环境,PHP7.4版本及github token进行安装。(缺一不可,如无github token则cloning依赖时将报错,cloning可中断后重新进行,重新进行时不将从头开始而是从最新cloning的依赖开始)

后续完成安装后需赋予Apache权限。

以下为参考文献:
Snipe-IT部署方案

设置代理

根据实际情况设置可以访问外网的代理或本身可以上外网则可忽略此步骤。

2023-10-11T06:17:29.png

系统更新

[root@localhost ~]# sudo yum -y install epel-release   
    已加载插件:fastestmirror, langpacks
    /var/run/yum.pid 已被锁定,PID 为 12894 的另一个程序正在运行。
    Another app is currently holding the yum lock; waiting for it to exit...
      另一个应用程序是:PackageKit
        内存:227 M RSS (641 MB VSZ)
        已启动: Tue Aug 22 08:59:44 2023 - 05:03之前
    状态  :睡眠中,进程ID:12894

[root@localhost ~]# rm -f /var/run/yum.pid  /*如出现上述报错,则可用此命令yum.pid解除占用,如无出现则无需进行此步操作。*/

[root@localhost ~]# sudo yum update -y  /*建议此步后进行快照,以便问题回滚*/

PHP安装(此步可询问ChatGPT)

安装EPEL仓库

EPEL仓库是一个为 RHEL 和 CentOS 提供额外软件包的仓库。

[root@localhost ~]# sudo yum install epel-release

安装REMI仓库

Remi 仓库提供了最新版本的 PHP。

[root@localhost ~]# sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm`  /*执行时需输入y进行*/

2023-10-11T06:26:36.png

启用 PHP 7.4 Remi 仓库

默认情况下,Remi 仓库可能启用了其他 PHP 版本。通过以下命令启用 PHP 7.4 仓库。

[root@localhost ~]# sudo yum-config-manager --enable remi-php74

2023-10-11T06:26:53.png

安装 PHP 7.4

安装 PHP 7.4 和常用的扩展包。

[root@localhost ~]# sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json  /*执行时需输入y进行*/

2023-10-11T06:27:07.png
2023-10-11T06:27:13.png
最终结束时如下图所示:
2023-10-11T06:27:23.png

[root@localhost ~]# php -v  /*查看php 版本信息*/

2023-10-11T06:27:38.png

启动和设置 PHP-FPM

PHP-FPM 是一个用于处理 PHP 请求的进程管理器。

[root@localhost ~]# sudo systemctl start php-fpm  /*启动php-fpm服务*/
[root@localhost ~]# sudo systemctl enable php-fpm  /*将php-fpm服务加入启动项*/

2023-10-11T06:27:51.png

Apache 2.4.6的安装与配置

[root@localhost ~]# yum install -y httpd httpd-devel  /* 安装Apache 2.4.6*/
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf   /*修改httpd.conf文件*/
确保httd.conf文件中包含以下字段,如不包含则加入此字段(如图所示)
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so

2023-10-11T06:29:42.png

在DirectoryIndex index.html加上index.php(如图所示)

2023-10-11T06:29:53.png

在AddType application*后面加如下一行(如图所示)

    AddType application/x-httpd-php .php .phtml

2023-10-11T06:30:02.png
重启httpd服务(如上述书写错误则无法重启,如无法重启时请重新检查是否有书写错误或粘贴位置错误)

[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# echo "<?php phpinfo(); ?>" >> /var/www/html/index.php  /*检验httpd的PHP支持*/

重启httpd服务,添加防火墙例外之后在网页访问,查看是否有以下图片信息

[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp
[root@localhost ~]# systemctl restart firewalld.service

2023-10-11T06:30:17.png
输入ip地址后将出现PHP版本(如图所示)
2023-10-11T06:30:28.png

Mariadb 5.5.60的安装与配置

[root@localhost ~]# yum install -y mariadb mariadb-server
[root@localhost ~]#systemctl start mariadb
[root@localhost ~]#mysqladmin -u root password "X************0525"
[root@localhost ~]#mysql -u root -p  /*输入密码,例子密码为:X************0525*/

2023-10-11T06:35:06.png

MariaDB [(none)]> create database snipeit character set utf8mb4 collate utf8mb4_general_ci;  /*创建snipeit数据库*/ 
MariaDB [(none)]> CREATE USER 'snipeit'@'localhost' IDENTIFIED BY 'snipeit';  /*创建snipeit用户*/ 
MariaDB [(none)]> grant all privileges on snipeit.* to 'snipeit'@'localhost';  /*授权*/ 
MariaDB [(none)]> grant all privileges on snipeit.* to 'snipeit'@'%';  /*授权*/ 
MariaDB [(none)]> flush privileges;  /*刷新权限*/ 

2023-10-11T06:35:50.png

MariaDB [(none)]>use mysql  /*选择数据库*/ 
MariaDB [mysql]>update user set password=password('X************0525') where user='snipeit'; /*修改密码*/
MariaDB [mysql]>flush privileges;  /*刷新权限*/ 
MariaDB [mysql]>exit

2023-10-11T06:37:07.png

[root@localhost ~]# systemctl restart php-fpm  /*启动php-fpm*/

安装snipeit及composer

Composer是PHP的依赖管理器。

[root@localhost ~]# curl -sS https://getcomposer.org/installer | php

2023-10-11T06:37:34.png

[root@localhost ~]# mv /root/composer.phar /usr/bin/composer  /*移动/root/composer.phar至/usr/bin/composer/
[root@localhost www]#cd /var/www
[root@localhost www]#yum install -y git
[root@localhost www]# git clone https://github.com/snipe/snipe-it snipe-it  /*从github下载snipe-it*/

2023-10-11T06:38:10.png

[root@localhost www]# cd /var/www/snipe-it
[root@localhost snipe-it]# sudo cp .env.example .env  /*复制env.example并命名为.env,此.env文件为snipe的配置文件*/
[root@localhost snipe-it]# vi .env  /*编辑.env文件*/

APP_KEY=Changeme(此条无需修改,后续生成APP_KEY将自动生成)
APP_URL=http://192.168.0.105(此服务IP地址,需写成http://IP地址格式,否则最后页面配置snipe-it时将报错)
APP_TIMEZONE='Asia/Shanghai'(此处写中国时区)
APP_LOCALE=zh-CN(此为重中之重,最初为en,此处不修改后续生成的网站将以英语格式呈现,后续在进行修改时将不生效,遂在生成APP_KEY时需写成zh-CN,生成APP_KEY后,后续生成网站才会以中文格式呈现)

2023-10-11T06:39:39.png
此处为上述配置数据库信息,按照上述数据库设置写进即可

DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=X************0525

2023-10-11T06:40:30.png

更改目录权限

此步不做将无法录入资产信息及生成资产标签等。

[root@localhost snipe-it]#chown -R apache:apache storage public/uploads
[root@localhost snipe-it]#chmod -R 755 storage
[root@localhost snipe-it]#chmod -R 755 public/uploads

安装PHP依赖(composer)

重中之重:请按照一下顺序进行安装,请勿颠倒命令顺序

[root@localhost snipe-it]#composer config -g repo.packagist composer https://packagist.phpcomposer.com

2023-10-11T06:43:35.png

[root@localhost snipe-it]#git config --global github.token <YOUR_TOKEN>  /*使用github token*/

2023-10-11T06:44:08.png

[root@localhost snipe-it]#composer install --no-dev --prefer-source  /*此处将安装将花费大量时间,如有长期不懂的cloning,则暂停后重新开始。(只会重新cloning 未加载的依赖,已经加载的不受影响)*/

2023-10-11T06:44:25.png
安装成功(如图所示)
2023-10-11T06:44:38.png

生成app_key

[root@localhost snipe-it]# php artisan key:generate  /*回车后输入yes*/

2023-10-11T06:44:54.png
完成上述操作后,.env 文件中的APP_KEY将自动写入
2023-10-11T06:45:19.png

修改Apache配置文件,创建虚拟主机

[root@localhost snipe-it]# vi /etc/httpd/conf.d/snipeit.example.com.conf

<VirtualHost *:80>
  ServerName snipeit.example.com
  DocumentRoot /var/www/snipe-it/public
  <Directory /var/www/snipe-it/public>
​    Options Indexes FollowSymLinks MultiViews
​    AllowOverride All
​    Order allow,deny
​    allow from all
  </Directory>
</VirtualHost>

2023-10-11T06:45:40.png

[root@localhost snipe-it]# systemctl restart httpd
[root@localhost snipe-it]# setenforce 0
[root@localhost snipe-it]# vi /etc/sysconfig/selinux  /*SELINUX=enforcing 改为 SELINUX=disabled #永久关闭selinux*/

2023-10-11T06:45:57.png
在游览器中输入服务IP地址:192.168.0.105,如出现以下提示则需要赋予Apache权限
2023-10-11T06:46:11.png

更改文件夹所有权:

使用正确的用户和组来更改文件夹及其内容的所有权。假设你的 Apache 用户和组是 apache,使用以下命令:

[root@localhost ~]#sudo chown -R apache:apache /var/www/snipe-it

2023-10-11T06:46:25.png

[root@localhost ~]#systemctl restart httpd

设置后刷新后页面即可按照提示进行下步操作
2023-10-11T06:46:42.png
2023-10-11T06:46:49.png
2023-10-11T06:47:33.png

最终成品。(如图所示)
2023-10-11T06:48:12.png

Responses