如何在Ubuntu 16.04上安装Snipe-IT

介绍

在信息技术行业, 资产管理是在整个生命周期中追踪资产的过程,包括采购,维护,存储和处置。 尽管具体的资产有所不同,但重点通常集中在硬件或软件,许可证以及数字艺术作品等基于文件的资源上​​。

Snipe-IT - 专为IT资产管理而设计的免费和开源应用程序 - 提供基于Web的界面,用于跟踪许可证,附件,耗材和组件。 Snipe-IT包括基于用户的帐户,具有可配置的组级权限,可定制的报告功能以及用于从命令行或第三方应用程序连接,管理和扩展Snipe-IT的JSON REST API。

在本教程中,您将下载,安装并配置Snipe-IT,然后您将创建一个管理员用户帐户,以便首次登录到Snipe-IT。

先决条件

要完成本教程,您将需要:

第1步 - 准备服务器

在下载Snipe-IT之前,通过安装一些额外的PHP库并创建MySQL数据库和数据库用户来准备服务器,Snipe-IT将使用它来存储其数据。

Snipe-IT建立在Laravel PHP框架之上 ,因此需要Composer依赖管理器来安装和管理额外的PHP库。

使用apt-get来安装composerunzip ,这是一个从Zip文件中提取文件所需的实用工具。

sudo apt-get install composer unzip

接下来,安装Snipe-IT依赖的其他PHP模块。

sudo apt-get install php7.0-mbstring php7.0-xml php7.0-mcrypt php7.0-gd php7.0-zip php7.0-curl php7.0-bcmath

额外的软件包提供了PHP:

现在,使用命令行mysql实用程序以root用户数据库用户身份登录到MySQL。

mysql -u root -p

在本地主机127.0.0.1上创建一个名为snipeit的新MySQL用户,并为用户分配一个密码。

create user snipeit@127.0.0.1 identified by 'snipeit_user_password';

接下来,创建一个名为snipeitdb的数据库,其中Snipe-IT将存储其数据。

create database snipeitdb;

snipeitdb数据库中所有表的所有权限授予snipeit用户,以便Snipe-IT有权执行其在数据库上所需的任何操作。

grant all on snipeitdb.* to snipeit@127.0.0.1;

最后,通过使用flush privileges命令重新加载授权表来激活更改并退出该实用程序。

flush privileges;
exit;

您的服务器现在具有Snipe-IT需要正常运行的额外的PHP库和MySQL数据库,因此我们下载并配置Snipe-IT本身。

第2步 - 下载和配置Snipe-IT

根据官方安装说明 ,您将使用Git下载最新版本的Snipe-IT。 由于Git只在已经存在的目录中是空的,所以可以使用ls来查看在先决条件中为Snipe-IT的Nginx服务器块配置的目录的内容。

ls /var/www/example.com/html/

如果目录不为空,则使用基本的Linux导航和文件管理命令将其清除。 mv将内容移动到不同的位置, rm其完全删除。

一旦目录是空的,从它在GitHub上的官方仓库下载Snipe-IT。

git clone https://github.com/snipe/snipe-it /var/www/example.com/html/

输出确认你正在克隆的位置,然后提供一个实时的过程报告,包括Git期望复制的对象的数量以及它实际复制的数量。

Output from git cloneCloning into '/var/www/example.com/html/'...
remote: Counting objects: 70975, done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 70975 (delta 20), reused 37 (delta 15), pack-reused 70897
Receiving objects: 100% (70975/70975), 67.04 MiB | 14.35 MiB/s, done.
Resolving deltas: 100% (44264/44264), done.
Checking connectivity... done.

你现在已经有了一个Snipe-IT的完整副本,但是在你开始安装之前,你需要启用Nginx来访问storagepublic/uploadsbootstrap/cache目录,因为这是Snipe-IT写入缓存,日志,并上传文件。

切换到安装目录。

cd /var/www/example.com/html/

使用带有-R选项的chown在所有三个目录上递归地将用户和组的所有权更改为www-data -Nginx的用户和组。

sudo chown -R www-data:www-data storage
sudo chown -R www-data:www-data public/uploads
sudo chown -R www-data:www-data bootstrap/cache

然后,使用带有-R标志的chmod在这些目录上递归设置权限 ,使其可读,写和可执行,可由组读取和执行,并可由世界读取和执行。

sudo chmod -R 755 storage
sudo chmod -R 755 public/uploads
sudo chmod -R 755 bootstrap/cache

通过为Nginx正确设置文件和目录权限,您就可以运行composer install ,它将读取Snipe-IT的composer.json文件中的其他依赖项列表,然后将其解析并安装到/var/www/ example.com /html/vendor

--no-dev选项告诉composer者忽略对运行Snipe-IT不是必需的依赖关系,但在Snipe-IT上进行开发时非常有用。

--prefer-source选项告诉composer者从它们的版本控制库(如果它们存在的话)下载依赖关系。

composer install --no-dev --prefer-source

输出报告composer尝试安装的每个依赖项,指示依赖项是否被成功克隆,并通过创建优化的自动载入文件来完成,这些文件可以提高Composer支持的PHP应用程序中类加载性能。

Output from composer install --no-dev --prefer-sourceLoading composer repositories with package information
Installing dependencies from lock file
  - Installing symfony/finder (v3.3.10)
    Cloning 773e19a491d97926f236942484cb541560ce862d
...
Generating optimized autoload files

您现在可以开始配置您的安装。 首先制作Snipe-IT附带的.env.example文件的副本; 这是Snipe-IT存储环境变量和设置(如时区,基本URL和日志大小)的地方。 然后,打开.env进行编辑。

cp .env.example .env
nano .env

寻找以下内容:

.ENV
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=null
...

APP_URL告诉Snipe-IT您的安装的基本URL。 null替换为您的域名。

.ENV
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=https://example.com
...

接下来,找到以下几行:

.ENV
...
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=null
DB_USERNAME=null
DB_PASSWORD=null
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
...

这是您告诉Snipe-IT如何连接到您在第1步中创建的MySQL数据库的地方。

由于Snipe-IT默认配置为连接到本地主机上运行的MySQL数据库,所以不需要修改前两行。

DB_DATABASEDB_USERNAME替换为在第1步中创建的MySQL数据库和数据库用户的名称,并将DB_PASSWORD替换为您为该数据库用户分配的密码。

DB_PREFIX将自定义前缀添加到Snipe-IT数据库中的表名。 此设置不是必需的,但可能会阻止依赖于默认数据库表名称的一些自动攻击。 除非要添加自定义前缀,否则将此设置保留为默认null值。

.ENV
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=snipeitdb
DB_USERNAME=snipeit
DB_PASSWORD=snipeit_user_password
DB_PREFIX=null

关闭并保存文件。

现在,使用artisan migrate来使用Snipe-IT的默认数据库模式填充MySQL。 该命令将告诉Laravel使用/var/www/ example.com /html/database/migrations/的文件执行数据库迁移

sudo php artisan migrate

出现提示时,输入yes确认您要执行迁移。

输出报告实时完成的每个迁移的名称。

Output from php artisan migrate**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > yes

 Migration table created successfully.
 ...
 Migrated:  2017_11_08_123942_labels_display_company_name

最后,使用artisan key:generate来为您的安装创建一个应用程序密钥。 Laravel会将密钥的值写入.env文件中的APP_KEY行,Snipe-IT将在加密和解密数据(如会话令牌)时使用该密钥。

php artisan key:generate

当出现提示时,再次输入yes以确认您要生成应用程序密钥。

完成后,输出会显示生成的密钥,并告诉您该值已写入.env文件。

Output from php artisan key:generate**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > yes

Application key [base64:rxP+jS3Q8qtM9eBktXtS/zqrrXVY1LEMxoZkbV35Al0=] set successfully.

完成安装和配置后,是时候修改Nginx来服务Snipe-IT了。

第3步 - 配置Nginx

在您的网络浏览器中使用Snipe-IT之前,您首先需要将Nginx指向Snipe-IT的根Web应用程序目录,并且您需要将传入的请求重定向到Snipe-IT的请求处理程序。

首先打开为Snipe-IT的Nginx服务器块创建的配置文件。

sudo nano /etc/nginx/sites-available/example.com

查找设置服务器块的根目录的指令。

/etc/nginx/sites-available/example.com
server {
    ...
    root /var/www/example.com/html;
    ...
}

Snipe-IT的Web应用程序文件位于从GitHub克隆项目时自动创建的public目录中。 修改Nginx将public作为这个服务器块的根目录。

/etc/nginx/sites-available/example.com
server {
    ...
    root /var/www/example.com/html/public;
    ...
}

接下来,找到默认位置块:

在/ etc / nginx的/网站启用/鹬,它
server {
    ...
    location / {
        try_files $uri $uri/ =404;
    }
    ...
}

修改此块将所有请求传递给Snipe-IT的请求处理程序进行处理。

在/ etc / nginx的/网站启用/鹬,它
server {
    ...
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
    ...
}

保存并关闭文件。

在重新启动Nginx之前,请测试您的新配置。

sudo nginx -t

输出应该报告你的syntax is ok 如果没有,请按照屏幕上的消息获取更多帮助。

现在,重新启动Nginx来应用更改。

sudo systemctl reload nginx

最后,验证Nginx是否正在备份并运行。

sudo systemctl status nginx

输出应表明服务active (running) 如果没有,请在继续之前回溯前面的步骤以解决问题

现在Nginx已经完全配置好了,请登录到Snipe-IT的网页设置工具来完成安装。

第4步 - 使用Pre-Flight Utility设置Snipe-IT

要完成安装,请将您的Web浏览器指向https:// example.com 这将带您进入Snipe-IT的飞行前实用程序的 第1步 ,Snipe-IT将对您的安装进行快速测试,确保一切正确配置。

在这个屏幕上,您会看到一个表格,向您显示每项设置,包括Pre-Flight测试,设置的测试结果以及描述设置的简短说明。 有效栏中的绿色复选标记表示设置是正确的。 如果任何设置以粉红色突出显示,并在“ 有效”列中标有红色X ,则表示该设置存在问题。 按照Snipe-IT的说明解决问题,然后再继续。

由于我们尚未配置Snipe-IT进行电子邮件,因此您可以单击屏幕右下角的蓝色下一步:创建数据库表按钮,以立即继续安装。

Snipe-IT Pre-Flight:配置检查

Pre-Flight的 第2步中,Snipe-IT将检查您的数据库并在必要时执行迁移。 由于您已经在本教程的第3步中使用了artisan进行了手动数据库迁移,因此Pre-Flight会告诉您数据库已经设置完毕,并且没有什么可以迁移

按屏幕右下角的蓝色下一步:创建用户按钮。

Snipe-IT Pre-Flight:创建数据库表

Pre-Flight的 第3步中,Snipe-IT要求您输入一些常规应用程序设置并创建您的第一个管理用户帐户。

在“ 站点名称”字段中,输入您希望Snipe-IT在每个屏幕顶部显示的标签。 这可能是您公司的名字,或者甚至可能是像Sammy的资产管理那样更具描述性的东西。

在“ 电子邮件域”字段中,输入您希望Snipe-IT用于发送邮件的域,然后在“ 电子邮件格式”字段中选择您希望Snipe-IT格式化传出邮件中的“ 收件人:”标题的方式。

名字姓氏字段中输入您的姓名,并在电子邮件字段中输入您的电子邮件地址。

最后,在“ 用户名”字段中输入您希望与帐户关联的用户名 ,然后在“ 密码”字段中输入您要使用的密码 请确保在确认密码字段中输入相同的密码,并在继续之前记下您的凭证。 你需要他们都登录到Snipe-IT。

由于您正在为自己创建此帐户,因此可以将我的凭据通过电子邮件发送到上面的电子邮件地址

填完所有信息后,点击屏幕右下角的蓝色下一步:保存用户按钮。

Snipe-IT Pre-Flight:创建管理员用户

Pre-Flight的 第4步中,Snipe-IT保存您刚输入的常规应用程序设置,创建新的管理用户,并将您登录到主仪表板。

Snipe-IT:默认管理仪表板

此时,您的安装已经完成,您可以开始使用Snipe-IT来管理您或您的客户的IT资产。

结论

在本文中,您设置了LEMP,使用Let's Encrypt TLS / SSL证书保护Nginx,安装并配置了Snipe-IT,创建了管理用户帐户,并登录到主要的Snipe-IT仪表板。

要了解有关向Snipe-IT添加和编辑资产的信息,请参阅管理资产的官方指南

要了解有关在Snipe-IT中使用用户帐户的信息,请参阅管理用户的官方文档

或者,对于其他问题,请查看官方的Snipe-IT用户手册

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏