Snipe-IT安装也有1年了,用起来还不错,最新版本来到了8.3.1,老版本还是7.0,需要对老版本进行升级
因为安装方式有很多,我这个安装比较传统,是通过文件进行安装,没有使用docker和git,写个教程记录一下
然后上传到服务器解压,替换文件需要注意.env文件,里面保存的是服务器设置和数据库地址
我使用的是宝塔面板,它的升级比较特殊,常规系统是替换文件就可以了,最多在访问一个web的升级地址进行数据库升级,但这个需要在命令行进行操作
先在git上下载最新的文件包 https://github.com/grokability/snipe-it/releases/tag/v8.3.1
进入shell,在项目根目录下,运行 Composer 安装最新的依赖包:
composer install --no-dev --prefer-source --optimize-autoloader
这里升级可能还会出现访问git需要你提供token才能继续下载
创建 Token:
登录 GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
点击 "Generate new token" → "Generate new token (classic)"
Description 填写:Composer on server
(可自定义)
Expiration:选择合适期限(如90天)
Select scopes:保持所有选项为空(对于公开仓库只需要最基本的权限)
点击 "Generate token"
打开 Composer 提示中的链接:https://github.com/settings/tokens/new?scopes=&description=Composer+on+your-server
或者手动操作:
复制 Token:生成后立即复制 token 字符串(只显示一次)
在 Composer 中输入 Token:
回到你的终端,在 Token (hidden):
提示处粘贴刚才复制的 token
按回车键继续
会有多个文件,连续重复的粘贴token就行,最后安装成功
运行 Snipe-IT 提供的升级脚本:
php upgrade.php
默认就是执行这个升级脚本文件就可以,但实际会出现很多问题
问题1,新版本的php扩展增加了 readline,需要在宝塔里安装这个扩展
问题2,由于证书验证等原因,需要修复或者排除检测
问题3,升级脚本不能使用root账户执行
问题4,.env文件权限问题
使用官方升级程序错误太多,然后使用手动升级方案
使用宝塔默认的www用户执行命令,先关闭SELinux 安全
setenforce 0
sudo -u www bash -c " cd /www/wwwroot/snipeit/ && \ composer install --no-dev --prefer-source --optimize-autoloader && \ php artisan migrate --force && \ php artisan config:clear && \ php artisan cache:clear && \ php artisan view:clear && \ php artisan optimize "
这样就手动升级成功了,访问网站看看是否为新版本。
到此升级结束,把刚才的安全设置修改回来就完成了
# 恢复安全权限 chmod 640 /www/wwwroot/snipeit/.env setenforce 1 # 如果之前禁用了 SELinux