开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南

Snipe-IT 是一款功能强大的开源IT资产管理系统,可以帮助企业跟踪和管理硬件、软件许可证等资产。以下是详细的部署流程,涵盖从环境准备到系统配置的全过程。

一、部署前准备

1. 系统要求

  • 操作系统: Ubuntu 20.04/22.04 LTS 或 CentOS 7/8 (推荐Ubuntu)
  • 内存: 至少2GB (生产环境建议4GB以上)
  • 存储空间: 至少10GB可用空间
  • 网络: 可访问互联网

 

2. 软件依赖

  • PHP 7.4/8.0
  • MySQL 5.7+/MariaDB 10.3+
  • Apache/Nginx
  • Composer
  • Git

开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图

二、部署流程

一、环境确认

首先确认你的 LNMP 环境已包含以下组件:

  • Nginx (已安装并运行)
  • MySQL/MariaDB (已安装,建议 10.3+ 版本)
  • PHP (8.1+,已安装并配置了 FPM)
  • Composer (已安装)

检查命令:

nginx -v
mysql --version
php -v
composer --version

二、部署步骤

1. 创建数据库和用户

sudo mysql -u root -p

在 MySQL 提示符下执行:

CREATE DATABASE snipeit CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'snipeit'@'localhost' IDENTIFIED BY '设置一个强密码';
GRANT ALL PRIVILEGES ON snipeit.* TO 'snipeit'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2. 安装必要 PHP 扩展

sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-bcmath php-intl php-ldap php-tokenizer
sudo systemctl restart php8.3-fpm  # 根据实际PHP版本调整

3. 下载 Snipe-IT

cd /var/www
sudo git clone https://github.com/snipe/snipe-it.git
sudo chown -R www-data:www-data snipe-it
cd snipe-it

开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图1

开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图2

4. 配置环境文件

sudo cp .env.example .env
sudo nano .env

主要修改以下配置:

APP_URL=http://你的域名或IP
APP_TIMEZONE=Asia/Shanghai
DB_HOST=localhost
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=你设置的数据库密码

5. 安装 PHP 依赖

sudo -u www-data composer install --no-dev --prefer-source

6. 生成应用密钥

sudo -u www-data php artisan key:generate

开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图3

7. 设置文件权限

sudo chmod -R 755 storage
sudo chmod -R 755 public/uploads
sudo chown -R www-data:www-data storage
sudo chown -R www-data:www-data public/uploads

8. 配置 Nginx

sudo nano /etc/nginx/sites-available/snipe-it

添加以下内容(根据你的实际路径和域名调整):

server {
    listen 80;
    server_name your-domain.com;  # 替换为你的域名或IP
    root /var/www/snipe-it/public;

    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;  # 根据实际PHP版本调整
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    client_max_body_size 100M;  # 允许大文件上传
}

启用配置:

sudo ln -s /etc/nginx/sites-available/snipe-it /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

 

9. 初始化数据库

sudo -u www-data php artisan migrate --seed

开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图4

10. 设置定时任务

sudo crontab -e

添加以下行:

* * * * * /usr/bin/php /var/www/snipe-it/artisan schedule:run >> /dev/null 2>&1

11. 完成安装

现在可以通过浏览器访问你的域名或IP来使用 Snipe-IT。
开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图5 开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图6 开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图7

三、HTTPS 配置(推荐)

使用 Let's Encrypt 免费证书

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
sudo systemctl reload nginx

证书会自动续期,无需手动操作。

四、常见问题解决

  1. 502 Bad Gateway 错误
    • 检查 PHP-FPM 是否运行:systemctl status php8.3-fpm
    • 确认 Nginx 配置中的 PHP socket 路径正确
  2. 数据库连接问题
    • 确认 .env 文件中的数据库凭据正确
    • 检查 MySQL 用户权限:SHOW GRANTS FOR 'snipeit'@'localhost';
  3. 文件上传问题
    • 确保 public/uploads 目录可写
    • 检查 PHP 配置:
      sudo nano /etc/php/8.3/fpm/php.ini

      修改以下值:

      upload_max_filesize = 100M
      post_max_size = 100M
      memory_limit = 256M

      然后重启 PHP-FPM:sudo systemctl restart php8.3-fpm

    五、优化建议

    1. 启用 OPcache
      sudo apt install php8.3-opcache
      sudo nano /etc/php/8.3/fpm/php.ini

      添加/取消注释:

      [opcache]
      opcache.enable=1
      opcache.enable_cli=1
      opcache.memory_consumption=128
      opcache.interned_strings_buffer=8
      opcache.max_accelerated_files=10000
      opcache.revalidate_freq=60

      重启 PHP-FPM:sudo systemctl restart php8.3-fpm
      配置队列处理

      • 在 .env 中设置 QUEUE_CONNECTION=database
      • 设置队列 worker:
        sudo nano /etc/systemd/system/snipeit-worker.service

        内容:

        [Unit]
        Description=Snipe-IT Queue Worker
        After=network.target
        
        [Service]
        User=www-data
        Group=www-data
        WorkingDirectory=/var/www/snipe-it
        ExecStart=/usr/bin/php artisan queue:work --sleep=3 --tries=3
        
        [Install]
        WantedBy=multi-user.target

        启用并启动:

        sudo systemctl enable snipeit-worker
        sudo systemctl start snipeit-worker

        定期备份

        • 创建备份脚本 /usr/local/bin/snipeit-backup.sh
          #!/bin/bash
          DATE=$(date +%Y%m%d)
          BACKUP_DIR="/backups/snipeit"
          mkdir -p $BACKUP_DIR
          
          # 备份数据库
          mysqldump -u snipeit -p'你的密码' snipeit > $BACKUP_DIR/snipeit-db-$DATE.sql
          
          # 备份应用文件
          tar -czf $BACKUP_DIR/snipeit-files-$DATE.tar.gz /var/www/snipe-it
          
          # 保留最近7天备份
          find $BACKUP_DIR -type f -mtime +7 -delete
    1. 设置可执行权限:chmod +x /usr/local/bin/snipeit-backup.sh
    2. 添加到 cron:crontab -e 添加 0 2 * * * /usr/local/bin/snipeit-backup.sh

    按照以上步骤,已经在 Ubuntu + LNMP 环境下成功部署了 Snipe-IT 资产管理系统。
    开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图8 开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南插图9

    版权声明 1. 本网站名称:稻草人笔记   永久网址:https://www.facekun.com
    2. 本文链接:开源免费的资产管理项目Snipe-IT ,在LNMP 环境下的部署指南: https://www.facekun.com/arts/1432.html
    3. 部分文章内容来源于网络,仅作为学习展示之用,版权归原作者所有
    4. 因部分文章网络流转次数较多,已无法追溯至原作者,若遗漏导致侵犯了您的权益,请您来信告知我,确认后会尽快删除。
    5. 本站禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
    6. 如无特别声明本文即为原创文章仅代表个人观点,版权归《稻草人笔记》所有,欢迎转载,转载请保留原文链接。
    THE END
    分享
    二维码
    < <上一篇
    下一篇>>