ubuntu22.04部署Snipe-IT

文章目录

  • 参考链接
  • 一、写在前
  • 二、安装操作系统
  • 三、安装 PHP
  • 四、下载 Snipe-IT
  • 五、安装依赖
  • 六、安装数据库并创建用户
  • 七、安装 Snipe-IT
  • 八、安装 Nginx
  • 九、Web 继续安装 Snipe-IT
    • 补充:
    • 20250427补充:
  • 最后


参考链接

How to Install Snipe-IT on Ubuntu 22.04
https://www.rosehosting.com/blog/how-to-install-snipe-it-on-ubuntu-22-04/
官方手册:https://snipe-it.readme.io/v7.1.17/docs/installation
IT打工人利器:推荐两款开源的公司固定资产管理工具
https://cloud.tencent.com/developer/article/2407425
在安装snipe-it中遇到的坑
https://www.cnblogs.com/mingxi/p/18293822


一、写在前

踩的坑多了,悟出的心得:
a.安装前一定要先找官方文档,查看软件的依赖环境,以及软件对应的版本信息
b.我使用的官方教程(默认克隆的最新版),教程里写的是PHP8.1即可,但其实最新版需要的是PHP8.2,所以导致安装失败,
在这里插入图片描述

二、安装操作系统

建议选择最小化安装(系统安装过程略)

apt install net-tools -y
apt -y install wget
apt install psmisc -y
apt install vim -y
apt install unzip -y
apt install curl -y
apt install git -y
apt update -y

查看系统版本
在这里插入图片描述

三、安装 PHP

根据Snipe-IT文档页面,v7.1.17版本要求PHP版本在8.1及以上。Ubuntu 22.04附带了PHP 8.1.2。在这一步中,我们将直接安装PHP 8.1以及所需的扩展。

# apt install php8.1-{bcmath,common,ctype,curl,fileinfo,fpm,gd,iconv,intl,mbstring,mysql,soap,xml,xsl,zip,cli}

四、下载 Snipe-IT

使用下面的命令导航到您的Web服务器的根目录。没有就新建

cd /var/www/html

然后,克隆Snipe-IT GitHub仓库并使用下面的命令将内容保存到snipe-it目录中。

git clone https://github.com/snipe/snipe-it snipe-it
//一定要注意:上面克隆的是最新版8.0.3,ubuntu版本仓库默认的PHP版本不支持,
//使用git回退版本
git clone --branch v7.1.17 https://github.com/snipe/snipe-it.git snipe-it    //此操作回退的是标签,不能当做安装包使用,需要创建分支//创建分支
git switch -c snipe-it-v7.1.17
//有的说回退版本
git checkout v7.1.17   //没尝试

五、安装依赖

Composer是一个PHP包管理器,它允许我们管理我们在Snipe-IT中使用的各种供应商包的依赖关系。供应商包是其他人编写的PHP库,我们在Snipe-IT中使用它。
不需要全局安装composer,第一组命令主要用于全局安装 Composer,而第二组命令用于项目内安装 Composer 并安装项目依赖。如果你需要在多个项目中使用 Composer,全局安装更为方便;如果希望每个项目有独立的 Composer 环境,避免不同项目之间的依赖冲突,项目内安装是更好的选择。

cd /var/www/html/snipeit/
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
cd /var/www/html/snipeit/
curl -sS https://getcomposer.org/installer | php
php composer.phar install --no-dev --prefer-source

要检查Composer版本,可以运行以下命令:

# composer -V

六、安装数据库并创建用户

Snipe-IT基于Laravel 8框架。虽然Laravel支持MySQL/MariaDB、PostgreSQL、SQLite和MSSQL,但Snipe-IT只支持MySQL/MariaDB。在这一步中,我们将从默认存储库安装MariaDB服务器。要安装MariaDB服务器,执行以下命令:

apt install mariadb-server -y
//创建数据库
mysql
mysql> CREATE DATABASE snipeit;
mysql> show databases;
mysql> create user snipeit;
mysql> GRANT ALL ON snipeit.* TO snipeit@localhost identified by '1qaz@WSX';
mysql> FLUSH PRIVILEGES;
mysql> \q

七、安装 Snipe-IT

cd /var/www/html/snipe-it
cp .env.example .env
vim .env

输入您的应用程序URL和时间区

APP_URL=http://172.0.0.110
APP_TIMEZONE='Asia/Shanghai'
APP_LOCALE='zh-CN'

然后在数据库设置下,输入您的数据库凭据

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=1qaz@WSX
DB_PREFIX=null

设置Snipe-IT数据目录的所有权和权限。

# chown -R www-data: /var/www/html/snipe-it
# chmod -R 775 /var/www/html/snipe-it

接下来,更新Snipe-IT依赖项。

# composer update --no-plugins --no-scripts

更新Composer后,我们需要执行以下命令来安装所有应用程序依赖。(我对这步表示疑惑,但还是执行了)

# composer install --no-dev --prefer-source --no-plugins --no-scripts

在/var/www/snipe-it/。使用下面的命令生成Laravel APP Key-value。系统会自动把key填充到.env文件中。

# php artisan key:generate

八、安装 Nginx

Laravel支持多种web服务器,如Apache、Nginx或Litespeed。在这一步中,我们将安装和配置nginx。让我们先安装它,然后继续下一步。

# apt install nginx

安装后,nginx将自动启动,并且它已经配置为在重新启动时运行。所以,我们可以继续为我们的Snipe-IT网站创建一个新的nginx服务器块。

vim /etc/nginx/conf.d/snipeit.conf

在文件中插入以下内容,并确保将snipeit.yourdomain.com替换为指向服务器IP地址的实际域名或子域名。

server {listen 80;server_name snipeit.yourdomain.com;   //注意替换并删除我root /var/www/html/snipe-it/public;index index.php;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {include fastcgi.conf;include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php/php8.1-fpm.sock;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}

保存文件,然后退出。我们需要重新启动nginx来应用我们所做的更改。

# systemctl restart nginx

九、Web 继续安装 Snipe-IT

此时,我们可以导航到http://172.0.0.110并通过web浏览器继续安装。
这一步如果访问失败(页面显示:500),那大概率是安装包权限问题,
新建一个用户:useradd snipeit,
并刷新安装包权限(已反复测试,有效)

chwon -R snipeit:www-data snipe-it
chmod -R 775 snipe-it/

然后重启再尝试
在这里插入图片描述
Next
在这里插入图片描述
已创建数据库表;现在单击Next: Create User继续。
在这里插入图片描述
单击下一步:保存用户在这里插入图片描述
到这里已安装完毕
至于更精细化的设置:LDAP、中文、使用技巧等等。请详询官手册

补充:

由于我的英文实在不好,这里我选择切换成中文。
切换中文的地方有两处:(第一处生效了)
在这里插入图片描述
在这里插入图片描述

20250427补充:

部署过程中要访问大量的github网站,大概率会因网络不同报错。不妨添加下面映射到你的hosts中,给github加加速(记得取消注释)

#185.199.108.154 github.githubassets.com
#140.82.113.22 central.github.com
#185.199.108.133 desktop.githubusercontent.com
#185.199.108.153 assets-cdn.github.com
#185.199.108.133 camo.githubusercontent.com
#185.199.108.133 github.map.fastly.net
#199.232.69.194 github.global.ssl.fastly.net
#140.82.113.3 gist.github.com
#185.199.108.153 github.io
#140.82.114.4 github.com
#140.82.112.6 api.github.com
#185.199.108.133 raw.githubusercontent.com
#185.199.108.133 user-images.githubusercontent.com
#185.199.108.133 favicons.githubusercontent.com
#185.199.108.133 avatars5.githubusercontent.com
#185.199.108.133 avatars4.githubusercontent.com
#185.199.108.133 avatars3.githubusercontent.com
#185.199.108.133 avatars2.githubusercontent.com
#185.199.108.133 avatars1.githubusercontent.com
#185.199.108.133 avatars0.githubusercontent.com
#185.199.108.133 avatars.githubusercontent.com
#140.82.113.9 codeload.github.com
#52.217.88.28 github-cloud.s3.amazonaws.com
#52.216.238.99 github-com.s3.amazonaws.com
#52.216.26.252 github-production-release-asset-2e65be.s3.amazonaws.com
#52.217.101.68 github-production-user-asset-6210df.s3.amazonaws.com
#52.217.48.84 github-production-repository-file-5c1aeb.s3.amazonaws.com
#185.199.108.153 githubstatus.com
#64.71.168.201 github.community
#185.199.108.133 media.githubusercontent.com

再或者你可以添加阿里的网站试试:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

如果频繁出现:

Cloning failed using an ssh key for authentication, enter your GitHub credentials to access private repos
When working with _public_ GitHub repositories only, head here to retrieve a token:
https://github.com/settings/tokens/new?scopes=&description=Composer+on+snipeit+2025-04-27+0829 
This token will have read-only permission for public information only.
When you need to access _private_ GitHub repositories as well, go to:
https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+snipeit+2025-04-27+0829 
Note that such tokens have broad read/write permissions on your behalf, even if not needed by Composer.
Tokens will be stored in plain text in "/root/.config/composer/auth.json" for future use by Composer.
For additional information, check https://getcomposer.org/doc/articles/authentication-for-private-packages.md#github-oauth 
Token (hidden):

这通常是因为你的项目依赖于私有 GitHub 仓库,而 Composer 需要适当的认证信息来访问这些仓库。

  1. 生成 GitHub 访问令牌

  2. 仅访问公共仓库:
    访问 GitHub Token 创建页面。
    我也不懂,跟着感觉选择
    点击 “Generate token” 生成令牌。

  3. 访问私有仓库:
    访问 GitHub Token 创建页面。
    我也不懂,跟着感觉选择
    点击 “Generate token” 生成令牌。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

composer config --global github-oauth.github.com ghp_********************bTOog2ZT8G4

接着执行即可


最后

上面执行的顺序我有所调整,如果你在安装过程中遇到问题,请留言。

如果成了,给个赞鼓励一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/903066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图论---Bellman-Ford算法

适用场景:有边数限制 ->(有负环也就没影响了),存在负权边,O( n * m ); 有负权回路时有的点距离会是负无穷,因此最短路存在的话就说明没有负权回路。 从1号点经过不超过k条边到每个点的距离…

A. Ideal Generator

time limit per test 1 second memory limit per test 256 megabytes We call an array aa, consisting of kk positive integers, palindromic if [a1,a2,…,ak][ak,ak−1,…,a1][a1,a2,…,ak][ak,ak−1,…,a1]. For example, the arrays [1,2,1][1,2,1] and [5,1,1,5][5,…

[详细无套路]MDI Jade6.5安装包下载安装教程

目录 1. 软件包获取 2. 下载安装 3. 启动 4. 问题记录 写在前面: 垂死病中惊坐起,JAVA博主居然开始更博客了~ 最近忙项目了, 没啥更新的动力,见谅~见谅~. 这次博主的化工友友突然让帮安装JADE6.5软件,本来以为不就一个软件,直接拿捏. 不料竟然翻了个小车, 反被拿捏了. 既…

Serverless 在云原生后端的实践与演化:从函数到平台的革新

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:从服务器到“无服务器”的后端演变 在传统后端开发中,我们需要为服务配置并维护服务器资源,无论是物理机、虚拟机还是容器化服务,都需要: 管理系统运行环境 监控负载与扩缩容 保证高可用与安…

【专题三】二分查找(2)

📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;&#xff…

MySQL 详解之函数:数据处理与计算的利器

在 MySQL 中,函数可以接受零个或多个输入参数,并返回一个值。这些函数可以在 SELECT 语句的字段列表、WHERE 子句、HAVING 子句、ORDER BY 子句以及 UPDATE 和 INSERT 语句中使用。合理利用函数,可以简化 SQL 语句,提高开发效率。 MySQL 提供了大量的内置函数 (Built-in F…

探索具身智能协作机器人:技术、应用与未来

具身智能协作机器人:概念与特点 具身智能协作机器人,简单来说,就是将人工智能技术与机器人实体相结合,使其能够在与人类共享的空间中进行安全、高效协作的智能设备。它打破了传统机器人只能在预设环境中执行固定任务的局限&#…

基于物联网的园林防火监测系统

标题:基于物联网的园林防火监测系统 内容:1.摘要 随着全球气候变化和人类活动影响,园林火灾发生频率呈上升趋势,给生态环境和人类生命财产造成巨大损失。为有效预防和应对园林火灾,本文提出基于物联网的园林防火监测系统。该系统综合运用传感…

JAVA多线程(8.0)

目录 线程池 为什么使用线程池 线程池的使用 工厂类Executors(工厂模式) submit 实现一个线程池 线程池 为什么使用线程池 在前面我们都是通过new Thread() 来创建线程的,虽然在java中对线程的创建、中断、销毁、等值等功能提供了支持…

用go从零构建写一个RPC(仿gRPC,tRPC)--- 版本1

希望借助手写这个go的中间件项目,能够理解go语言的特性以及用go写中间件的优势之处,同时也是为了更好的使用和优化公司用到的trpc,并且作者之前也使用过grpc并有一定的兴趣,所以打算从0构建一个rpc系统,对于生产环境已…

【学习笔记】Stata

一、Stata简介 Stata 是一种用于数据分析、数据管理和图形生成的统计软件包,广泛应用于经济学、社会学、政治科学等社会科学领域。 二、Stata基础语法 2.1 数据管理 Stata 支持多种数据格式的导入,包括 Excel、CSV、文本文件等。 从 Excel 文件导入…

Redis数据结构SDS,IntSet,Dict

目录 1.字符串:SDS 1.1.为什么叫做动态字符串 2.IntSet 2.1.inset如何保存大于当前编码的最大数字? 3.Dict 3.1Dict的扩容 3.2Dict的收缩 3.3.rehash 1.字符串:SDS SDS的底层是C语言编写的构建的一种简单动态字符串 简称SDS&#xff…

Maven的聚合工程与继承

目录 一、为什么需要使用Maven工程 二、聚合工程的结构 三、聚合工程实现步骤 四、父工程统一管理版本 五、编译打包 大家好,我是jstart千语。想着平时开发项目似乎都是用maven来管理的,并且大多都是聚合工程。而且在maven的聚合工程中&#xff0c…

前端职业发展:如何规划前端工程师的成长路径?

前端职业发展:如何规划前端工程师的成长路径? 大家好,我是全栈老李。今天咱们聊聊前端工程师的职业发展路径,这个话题看似简单,实则暗藏玄机。就像打游戏升级一样,你得知道下一关是什么,才能提前准备装备和技能点。 前端之路 一般我们从一个新手到大神,普遍需要经过…

【星海出品】分布式存储数据库etcd

etcd 数据库由 CoreOS 公司创建。 https://github.com/etcd-io/etcd api信息 https://etcd.io/docs/v3.5/dev-guide/api_reference_v3/ etcdctl --help etcd 最初由 CoreOS 公司开发,作为其核心项目之一。 CoreOS 成立于 2013 年,专注于容器化技术&#…

2025新版修复蛇年运势测试风水起名系统源码

2025新版修复蛇年运势测试风水起名系统源码 通过网盘分享的文件:2025xbfsysweb.rar 链接: https://pan.baidu.com/s/1r1MOkJJJMj9s9nQX_GzI3Q 提取码: 9weh 备用下载地址:http://pan.1234f.com:5212/s/JK1uw

Vue3 Pinia

一、Pinia 核心概念 Pinia 是 Vue3 官方推荐的状态管理库,相比 Vuex 4,具有以下优势: 更简洁的 API(移除 mutations) 完整的 TypeScript 支持 支持组合式 API 自动代码分割 轻量级(仅 1KB)…

音视频小白系统入门课-4

本系列笔记为博主学习李超老师课程的课堂笔记,仅供参阅 往期课程笔记传送门: 音视频小白系统入门笔记-0音视频小白系统入门笔记-1音视频小白系统入门笔记-2音视频小白系统入门笔记-3 将mp4文件转换为yuv文件 ffmpeg -i demo.mp4 # 输入文件-an …

6.2 内容生成与营销:个性化内容创作与营销策略优化

随着消费者对个性化体验的需求日益增长,传统的内容创作与营销方式已难以满足市场竞争的需要。基于大语言模型(LLM)与智能代理(Agent)的技术为企业提供了全新的解决方案,能够实现高效、精准、规模化的内容生…

kafka课后总结

Kafka是由LinkedIn开发的分布式发布 - 订阅消息系统,具备高吞吐量、低延迟、可扩展性、持久性、可靠性、容错性和高并发等特性。其主要角色包括Broker、Topic、Partition、Producer、Consumer、Consumer Group、replica、leader、follower和controller。消息系统中存…