如何在 Linux 部署 Snipe-IT 开源 IT 资产管理系统:自动化与手动两种路径完整指南
【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it
如果你准备在 Linux 服务器上完成 Snipe-IT 安装,先要弄清两件事:环境要满足什么条件、部署路径怎么选。Snipe-IT 是一个基于 Laravel 11 框架的开源 IT 资产与许可证管理系统,跑在 Apache + MariaDB + PHP 这套经典组合上,通过浏览器访问使用。下面按"先检查环境 → 选路径 → 动手部署 → 初始化 → 上线运维"的顺序,把整条 Snipe-IT 部署链路走一遍。
📋 部署前准备:Snipe-IT 环境要求与硬件规格
先把服务器底子核对一遍,不达标的话后面每一步都会卡。
| 组件 | 最低版本 | 用途 |
|---|---|---|
| PHP | 8.2+ | 应用运行环境 |
| MariaDB | 10.5+ | 数据存储 |
| Apache | 2.4+ | Web 服务器 |
| Git | 2.0+ | 获取代码 |
| Composer | 2.0+ | 管理 PHP 依赖 |
操作系统方面,Snipe-IT 官方支持:
- Debian 10 / 11 / 12
- Ubuntu 20.04 / 22.04 / 23.04 及以上
- CentOS / Rocky 8 / 9
硬件给一个底线参考:CPU 2 核起步;内存 4GB 能跑,生产环境建议 8GB;存储至少 20GB SSD,资产量大就往上加。
🧭 先做判断:选自动化脚本还是手动部署
Snipe-IT 安装只有两条路,选错不致命,选对能省时间:
- 官方脚本 install.sh:适合全新服务器、接受默认目录结构、想尽快上机的场景。脚本会替你装依赖、建库、配 Apache 虚拟主机、改目录权限,全程 5–10 分钟,只问你两个问题。
- 手动分步部署:适合需要自定义安装目录、复用已有 MariaDB、调整虚拟主机或权限策略的场景。步骤多,但每一步你都看得见、改得动。
下面两条路径都完整给出。
⚡ 路径一:用官方 install.sh 一键部署 Snipe-IT
以 root 登录服务器后依次执行:
# 下载安装脚本 wget https://raw.githubusercontent.com/grokability/snipe-it/master/install.sh # 添加执行权限 chmod 744 install.sh # 运行安装(日志同步写入 /var/log/snipeit-install.log) ./install.sh 2>&1 | tee -a /var/log/snipeit-install.log脚本运行中会提示两次输入:
- 服务器的 FQDN(完全限定域名),默认取
hostname --fqdn的结果; - 数据库密码是自动生成还是手动指定。
依赖安装、数据库配置、Apache 虚拟主机、目录权限这些活脚本都会处理。装完后直接用浏览器访问你的域名即可。
🛠 路径二:手动部署 Snipe-IT 的四个阶段
手动安装步骤不神秘,本质上就是四件事:备好数据库、落好代码、开通 Web 服务、完成初始化。以 Ubuntu 22.04 为例。
阶段一:安装系统依赖并在 MariaDB 建库
# 更新系统包 sudo apt update && sudo apt upgrade -y # 安装 PHP 扩展与 Web 服务器 sudo apt install -y mariadb-server apache2 libapache2-mod-php8.2 \ php8.2-curl php8.2-mysql php8.2-gd php8.2-ldap php8.2-zip \ php8.2-mbstring php8.2-xml php8.2-bcmath curl git unzip # 启动并设置 MariaDB 开机自启 sudo systemctl start mariadb sudo systemctl enable mariadb # 安全初始化(设 root 密码、删匿名用户) sudo mysql_secure_installation然后建库、建专用账号、授权:
sudo mysql -u root -p CREATE DATABASE snipeit CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'snipeit_user'@'localhost' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON snipeit.* TO 'snipeit_user'@'localhost'; FLUSH PRIVILEGES; EXIT;阶段二:拉取代码、配置 .env 并完成迁移
# 创建安装目录 sudo mkdir -p /var/www/html/snipeit sudo chown -R $USER:$USER /var/www/html/snipeit # 克隆代码仓库 git clone https://gitcode.com/GitHub_Trending/sn/snipe-it /var/www/html/snipeit cd /var/www/html/snipeit git checkout master复制环境配置文件并修改核心项:
cp .env.example .env nano .env.env.example 里必须改的键:
APP_URL=http://your_server_ip_or_domain DB_HOST=localhost DB_DATABASE=snipeit DB_USERNAME=snipeit_user DB_PASSWORD=your_strong_password APP_TIMEZONE=Asia/Shanghai接着装依赖、生成密钥、跑迁移、设权限:
# 安装 PHP 依赖 composer install --no-dev --prefer-source # 生成应用密钥 php artisan key:generate --force # 执行数据库迁移 php artisan migrate --force # 目录权限:属主交给 www-data,storage 与上传目录 775 sudo chown -R www-data:www-data /var/www/html/snipeit sudo chmod -R 775 /var/www/html/snipeit/storage sudo chmod -R 775 /var/www/html/snipeit/public/uploads阶段三:配置 Apache 虚拟主机并启用站点
创建/etc/apache2/sites-available/snipeit.conf:
<VirtualHost *:80> <Directory /var/www/html/snipeit/public> Allow From All AllowOverride All Options -Indexes </Directory> DocumentRoot /var/www/html/snipeit/public ServerName your_server_domain.com ErrorLog ${APACHE_LOG_DIR}/snipeit-error.log CustomLog ${APACHE_LOG_DIR}/snipeit-access.log combined </VirtualHost>注意DocumentRoot必须指向public目录而不是项目根目录,这是 Snipe-IT 手动安装最容易写错的一处。启用并重启:
sudo a2enmod rewrite sudo a2ensite snipeit.conf sudo systemctl restart apache2阶段四:首次访问与系统初始化
浏览器打开你的域名,Snipe-IT 会引导你完成四步初始化:
- 创建管理员账户(拥有系统全部权限);
- 填写组织信息(名称、地址、联系人);
- 配置邮件服务器(通知和密码重置依赖它);
- 选择资产分类模板。
这四步做完,系统就算正式上线了。
🔍 部署排障:Snipe-IT 三个高频问题
Composer 装依赖慢——切国内镜像源:
composer config -g repo.packagist composer https://packagist.phpcomposer.commigrate 失败——先核对数据库用户权限是否授全,确认无误后可重建库表:
php artisan migrate:fresh --seed页面 500——看应用日志定位:
tail -f /var/www/html/snipeit/storage/logs/laravel.log九成是目录权限不足或.env里的数据库连接项填错,回头核对阶段二即可。
⚙️ 上线之后:性能、定时任务与 HTTPS
这三项不阻塞使用,但生产环境建议尽快补上。
开启 OPcache,编辑php.ini加入:
opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000配置定时任务(邮件发送、资产折旧计算都靠它驱动),以 www-data 身份添加 crontab:
echo "* * * * * /usr/bin/php /var/www/html/snipeit/artisan schedule:run >> /dev/null 2>&1" | sudo crontab -u www-data -用 Let's Encrypt 上 HTTPS:
sudo apt install certbot python3-certbot-apache sudo certbot --apache -d your_domain.com📦 投入使用:导入数据、分配权限与备份
系统跑起来只是开始,让数据进去才算真正用起来:
- 批量导入资产:仓库里的 sample_csvs/ 目录提供了各类资产的 CSV 模板,按模板整理现有数据后在后台导入;
- 用户与权限:先建部门与用户组,再按组分配权限,避免逐个授权;
- 系统集成:Snipe-IT 提供完整 API,可与工单、采购等系统对接;
- 备份:数据库与
storage/下的上传文件都纳入定期备份,别等丢数据才想起这步。
按这套流程走完,你在手上有的是一个能立刻开始登记资产、发放许可证的 Snipe-IT 实例。
【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考