文章目录
介绍
Snipe-IT是一个免费的开源项目,旨在处理IT资产管理。它可以处理跟踪资产,例如网络设备,服务器,PC,软件和许可证,其购买日期以及其他相应信息。它是使用PHP和Laravel框架构建的,并依靠MySQL作为数据库来存储和检索其数据。
环境简介
组件 | 版本 | IP address |
---|---|---|
centos | 7.9 | 172.18.1.117 |
DNS | windows server 2012 | 172.17.1.1 |
DB | MariaDB | localhost |
PHP | 7.4 | localhost |
Nginx |
部署过程
1. 配置防火墙
使用firewall-cmd 打开centos 的80,443端口,以确保可以正常访问80,443端口
$ sudo firewall-cmd --permanent --add-port=80/tcp$ sudo firewall-cmd --permanent --add-port=443/tcp$ sudo firewall-cmd --reload
2. 安装EPEL 存储库
本文档所需的某些软件包仅在 EPEL(适用于企业 Linux 的额外软件包)存储库中提供。EPEL 存储库由红帽赞助的 Fedora 项目特别兴趣小组维护。EPEL 存储库提供了本指南所需的证书机器人和证书机器人 Nginx 插件包。
$ sudo yum install -y epel-release
3. 安装REMI 存储库
CentOS 7 的储存库提供 PHP 版本 5.4,而SNIP-IT 则要求最低 PHP 版本为 7.2.5。为了解决这个问题,REMI仓库,提供较新版本的PHP用于 CentOS。但是,Snipe-IT的文档建议使用7.4的PHP版本,Remi存储库提供此版本。
$ sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm安装yum-untils$ sudo yum install -y yum-utils配置yum,使其从remi 仓库中安装PHP7.4$ sudo yum-config-manager --enable remi-php74
4. 安装NGINX
Nginx是一个可扩展的Web服务器,具有许多功能,例如负载平衡,反向代理,HTTP缓存等。
$ sudo yum install -y nginx$ sudo systemctl enable nginx.service$ sudo systemctl start nginx.service
5. 安装MariaDB数据库
MariaDB是社区开发的,商业支持的MySQL关系数据库的分支,根据GPL许可。它旨在通过提供更新,更优化的存储引擎来提高性能和可扩展性,从而成为MySQL的直接替代品。
$sudo yum install -y mariadb mariadb-server$ sudo systemctl start mariadb.service$ sudo systemctl enable mariadb.service
6. 配置MariaDB 数据库
默认情况下,MariaDB附带一个空白的根密码和一个不安全的配置,以便于配置。它带有一个安全的安装脚本,旨在设置root密码并使用安全的默认值配置服务器。
$ sudo mysql_secure_installation
当系统提示输入 root 的当前密码时,请按“无”。Enter
当系统要求您提供新的 root 密码时,请确保使用安全密码。该密码将在管理数据库指南的后续步骤中使用。因此,建议将此密码存储在安全的地方。
回答或按所有剩余的提示。'Y’ENTER
7. 创建数据库
$ 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;
8. 安装PHP
PHP 是在服务器上运行SNIPE-IT所需的脚本语言和runtime。此外,PHP-FPM 软件包还提供了 PHP FastCGI 管理器,允许 Nginx 与 PHP 通信并执行 PHP 脚本。其余的包是SNIPE-IT 和Composer所需的依赖项,以及用于连接到 MariaDB 数据库的驱动程序。
$ sudo yum install -y php php-fpm php-ldap php-bcmath php-mbstring php-pdo php-simplexml php-dom php-gd php-mysqlndyum install -y zip unzip php-zip修改PHP-FPM 配置文件$ sudo vi /etc/php-fpm.d/www.confuser = nginxgroup = nginxlisten = /run/php-fpm/php-fpm.socklisten.owner = nginxlisten.group = nginxlisten.mode = 0660------------------------------$ sudo systemctl start php-fpm.service$ sudo systemctl enable php-fpm.service
9. 安装Composer
Composer是 PHP Project 的依赖关系管理器。它由 Snipe-IT 使用,因此需要安装它,Composer 会安装所需的依赖包。它还用于在新版本发布时更新依赖包。
$ curl -sS https://getcomposer.org/installer | php$ mv composer.phar /usr/local/bin/composer$ composer global require slince/composer-registry-manager$ composer repo:ls$ composer repo:use$ composer config -g -l repo.pachagist
10. 安装GIT
Git 是一个版本控制系统,将用于获取和更新 Snipe-IT 的源代码。这是 Snipe-IT 官方文档中推荐的下载方法。它还允许轻松获取和更新到较新版本的Snipe-IT。
$ sudo yum install -y git
11. 安装Snipe-IT
$ sudo git clone --depth=1 https://github.com/snipe/snipe-it /var/www/snipeit$ cd /var/www/snipeit修改配置文件$ sudo cp .env.example .env$ sudo vi .envAPP_URL=https://asset.unite-puxi.localDB_DATABASE=snipeitDB_USERNAME=snipeitDB_PASSWORD=snipeit-------------------------------------修改相关文件夹权限,确保Nginx和PHP可以读写。chown -R nginx:nginx /var/www/snipeit$ sudo chown -R nginx:nginx storage public/uploads$ sudo chmod -R 755 storage public/uploads使用Composer更新其依赖包$ composer update --ignore-platform-reqs$ composer install --no-dev生成新的随机app key$ sudo php artisan key:generate --force
12.配置Nginx
$ sudo vi /etc/nginx/conf.d/snipeit.confserver { listen 80; listen [::]:80; server_name asset.unite-puxi.local; return 301 https://$host$request_uri;}server { listen 443 ssl; listen [::]:443 ssl; server_name asset.unite-puxi.local; ssl_certificate /etc/ssl/certs/asset.unite-puxi.local/dvwa.cer; ssl_certificate_key /etc/ssl/certs/asset.unite-puxi.local/dvwa.key; ssl_protocols TLSv1.2 TLSv1.3; root /var/www/snipeit/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri $uri/ =404; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}$ sudo nginx -t$ sudo systemctl restart nginx.service
13. 配置SELinux
$ sudo chcon -R --type=httpd_sys_rw_content_t /var/www/snipeit$ setsebool -P httpd_can_network_connect_db 1
初始化Snipe-IT
输入域名https://asset.unite-puxi.local/setup
常见问题处理
这些命令应该从 Snipe-IT 项目根目录运行,用于清楚一些PHP 缓存文件,可解决大部分问题composer dump-autoloadphp artisan cache:clear php artisan config:clearphp artisan route:clearphp artisan debugbar:clearphp artisan event:clearphp artisan view:clearphp artisan optimize:clearphp artisan clear-compiled邮箱问题setsebool -P httpd_can_network_connect on参考链接https://snipe-it.readme.io/docs/common-issues
来源地址:https://blog.csdn.net/cjenjingwen/article/details/126760742