软件简介
Snipe-IT 是一个开源的资产管理系统。Snipe-IT 用于IT资产管理,IT部门通过它能够跟踪谁拥有哪台笔记本电脑、何时购买、包含哪些软件许可证和可用的附件等等。功能特性
托管在云主机
强大的 REST API
快速更新
保证 App 和 Platform 的安全性
一键备份
LDAP 登录/用户同步
运行截图
安装开始:一、环境准备
CentOS 7 + Apache + PHP +Mariadb
CentOS 7 (阿里云):http://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-DVD-1908.iso
注:非root用户请自行加 sudo
sudo yum -y install epel-release vim net-tools wget
yum -y install epel-release
yum update –y
启用epel和添加PHP 7.4 Remi存储库
yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
安装yum-utils
yum -y install yum-utils
默认存储库PHP 5.4,禁用此repo并启用PHP 7.4
yum-config-manager --disable remi-php54
yum-config-manager --enable remi-php74
安装PHP
yum -y install php php-cli php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-pdo php-pecl-apcu php-pecl-apcu-devel php-fpm php-openssl php-tokenizer php-mysql php-ldap php-fileinfo php-dom
检查安装的版本
php -v
安装Apache
yum install -y httpd httpd-devel
修改http.conf文件
vim /etc/httpd/conf/httpd.conf
在AddType application*后面加如下一行
AddType application/x-httpd-php .php .phtml
大概在第285行左右添加,添加后如下:
272 #AddType application/x-gzip .tgz
273 #
274 # AddEncoding allows you to have certain browsers uncompress
275 # information on the fly. Note: Not all browsers support this.
276 #
277 #AddEncoding x-compress .Z
278 #AddEncoding x-gzip .gz .tgz
279 #
280 # If the AddEncoding directives above are commented-out, then you
281 # probably should define those extensions to indicate media types:
282 #
283 AddType application/x-compress .Z
284 AddType application/x-gzip .gz .tgz
285 AddType application/x-httpd-php .php .phtml
在DirectoryIndex index.html加上index.php
DirectoryIndex index.php index.html
添加后如下:
157 </Directory>
158
159 #
160 # DirectoryIndex: sets the file that Apache will serve if a directory
161 # is requested.
162 #
163 <IfModule dir_module>
164 DirectoryIndex index.php index.html
165 </IfModule>
确保httd.conf文件中包含以下字段,如不包含则加入此字段
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so
添加后如下:
53 # Example:
54 # LoadModule foo_module modules/mod_foo.so
55 #
56 Include conf.modules.d/*.conf
57 LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so
58 #
重启httpd服务+开机自启
systemctl restart httpd
systemctl enable httpd
检验httpd的PHP支持
echo "<?php phpinfo(); ?>" >> /var/www/html/index.php
重启httpd服务,添加防火墙例外之后在浏览器输入服务器地址可访问本机php信息网页
systemctl restart httpd
firewall-cmd --permanent --zone=public --add-port=80/tcp
systemctl restart firewalld
同网段下浏览器输入本机地址可访问本机php信息网页
Mariadb的安装
yum install -y mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb
配置数据库
默认情况下,MariaDB附带一个空白的根密码和一个不安全的配置,以便于配置。它带有一个安全的安装脚本,旨在设置root密码并使用安全的默认值配置服务器。
sudo mysql_secure_installation
当系统提示输入 root 的当前密码时,请按“无”。Enter
当系统要求您提供新的 root 密码时,请确保使用安全密码。该密码将在管理数据库指南的后续步骤中使用。因此,建议将此密码存储在安全的地方。
回答或按所有剩余的提示。'Y’ENTER
创建数据库
sudo mysql -u root -p
创建数据
CREATE DATABASE snipeit;
创建用户名和密码
CREATE USER snipeit@localhost IDENTIFIED BY 'snipeit';
\密码自定义,也可以先用这个,创建完之后改
授予新用户相关权限
GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost;
加载配置,使其生效
FLUSH PRIVILEGES;
如需修改密码,使用以下命令进行修改
选择数据库
use snipeit
修改密码
update user set password=password('snipeit!@#') where user='snipeit';
刷新权限
flush privileges;
启动php-fpm+开机自启
systemctl start php-fpm
systemctl enable php-fpm
安装composer,Composer是PHP的依赖管理器
[root@snipeit ~]# cd ~
[root@snipeit ~]# curl -sS https://getcomposer.org/installer | php
[root@snipeit ~]# mv /root/composer.phar /usr/bin/composer
安装snipeit
[root@snipeit ~]# cd /var/www
安装git支持
[root@snipeit www]# yum install -y git
开始克隆snipe-it,这里从github克隆速度有些慢,需要很长时间
[root@snipeit www]# git clone https://github.com/snipe/snipe-it snipe-it
编辑 snipeit的配置文件
cd /var/www/snipe-it
sudo cp .env.example .env
vi .env
[root@snipeit www]##APP_URL= http://192.168.208.128 #填入IP地址
IP查询命令ip add
[root@snipeit www]##APP_TIMEZONE='Asia/Shanghai' #时区
[root@snipeit www]##DB_DATABASE=snipeit #数据库名称
[root@snipeit www]##DB_USERNAME=snipeit #数据库用户名
[root@snipeit www]##DB_PASSWORD=Passw0rd #前面设置数据库密码
[root@snipeit www]###其中
[root@snipeit www]##APP_DEBUG=false #需要调试的时候请更改为true,一般用不到
更改目录权限
chown -R apache:apache storage public/uploads
chmod -R 755 storage
chmod -R 755 public/uploads
安装PHP依赖,这里非常的慢,需要加载107个插件
[root@snipeit snipe-it]# composer install --no-dev --prefer-source
如果上述过程安装时间过长,可以修改为国内源之后重新安装尝试
[root@snipeit snipe-it]##composer config -g repo.packagist composer https://packagist.phpcomposer.com
生成app_key
[root@snipeit snipe-it]# php artisan key:generate
**************************************
* Application In Production! *
**************************************
Do you really wish to run this command? (yes/no) [no]:
> yes
Application key [base64:BgJOq6cR/V+3ilFBaY+yzgV5ylL2Tyque36TYcGDFfc=] set successfully.
修改Apache配置文件,创建虚拟主机
vim /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>
重启Apache服务
systemctl restart httpd
如果出现配置完成之后仍然无法访问,请关闭本机的selinux
临时关闭selinux
[root@snipeit snipe-it]# setenforce 0
永久关闭selinux
vi /etc/sysconfig/selinux
[root@snipeit snipe-it]##SELINUX=enforcing 改为 SELINUX=disabled #永久关闭selinux
OK,访问http://服务器地址即可。
故障记录:
创建资产型号报错500的解决办法:
chmod -R 777 /var/www/html/snipeit/bootstrap/cache
URL报错
.env配置地址改成http://地址
APP_URL=http://本机地址 #按实际设置填入地址
File Owner 文件所有者报错
修改snipeit文件夹所有者
chown -R apache snipe-it
数据库报错
D'oh! Looks like we can't connect to your database. Please update your database settings in your .env file. Your database says: SQLSTATE[HY000] [1045] Access denied for user 'snipeit'@'localhost' (using password: YES) (SQL: select 2 + 2)
修改.env配置文件
[root@ www]##DB_DATABASE=snipeit #数据库名称
[root@ www]##DB_USERNAME=snipeit #数据库用户名
[root@ www]##DB_PASSWORD=Passw0rd #前面设置数据库密码、密码不能包含一个“#”符号
打开网页开始配置Snipe-IT
优化Snipeit
修改中文
选择-Edit Your Profile-Language
网站默认目录下resources\lang\zh-cn\general.php文件中定义了中文翻译,对于翻译不准,可以在这儿进行修改。直接修改中文部分,=>前面的部分不动。
比如:把借出修改为领用。
比如:在查看用户中的打印所有已分配资产中的管理员签字改为部门主管签名。(下面代码中已经改了)
配置自定义打印标签(资产设备位置)
编辑标签目录
/var/www/snipe-it/resources/views/hardware/labels.blade.php
@if (($settings->labels_display_model=='1') && ($asset->location))
<div class="pull-left">
位置: {{ $asset->location->name }}
</div>
@endif
文章出处说明:https://www.cnblogs.com/airoot/p/17845640.html
参考其他文章:
https://www.52pojie.cn/thread-1341424-1-1.html