一硅卢、安裝寶塔面板
1、下載寶塔面板
??地址:https://www.bt.cn/new/download.html
2藏杖、安裝
??根據(jù)提示安裝即可将塑。
二、寶塔面板初始配置
1制市、啟動(dòng)
??雙擊桌面上的寶塔面板
圖標(biāo)抬旺,執(zhí)行程序。
2祥楣、初始配置
(1)域名
??可以不填开财,如果需要汉柒,后期可以再補(bǔ)充。
??如果在局域網(wǎng)使用责鳍,可以直接使用IP Address訪問(wèn)寶塔面板的管理界面碾褂。當(dāng)然也可以通過(guò)修改hosts文件來(lái)達(dá)到域名訪問(wèn)寶塔面板的目的,但不需要在此處設(shè)置历葛。除非在互聯(lián)網(wǎng)上需要直接訪問(wèn)寶塔面板的管理界面(相信出于安全的考慮正塌,一般沒(méi)人這么做)并且購(gòu)買有域名可用,否則此處都可以不填恤溶。
(2)端口
??默認(rèn)是8888乓诽,如果與服務(wù)器上的其他程序沖突,可以在此處更改咒程。一般沖突時(shí)會(huì)有提示鸠天。
(3)安全入口
??登錄寶塔面板的管理界面時(shí),默認(rèn)地址是http://ip地址:端口號(hào)/安全入口
的格式帐姻。
例如:
http://127.0.0.1:8888/**admin**
??此處的安全入口即為admin
稠集,可以根據(jù)自己意思改成其他的,比如default
饥瓷,那登錄地址就變?yōu)椋?/p>
http://127.0.0.1:8888/default
(4)授權(quán)IP
??可訪問(wèn)寶塔面板管理界面的IP地址白名單剥纷。
(5)用戶名
??登錄寶塔面板管理界面的用戶名,根據(jù)需要自己設(shè)置呢铆,但不能使用admin
晦鞋。
(6)密碼
??登錄寶塔面板管理界面的密碼。
3刺洒、訪問(wèn)面板的管理界面
(1)本機(jī)訪問(wèn)
??如果在安裝寶塔面板的本機(jī)(通常是服務(wù)器)訪問(wèn)鳖宾,可以直接使用http://127.0.0.1:端口號(hào)/安全入口
的格式直接在瀏覽器中打開(kāi)。
??也可以使用http://localhost:端口號(hào)/安全入口
的地址直接在瀏覽器中打開(kāi)逆航。如果是使用localhost代替127.0.0.1訪問(wèn)失敗鼎文,可以在hosts中做一下解析。
(2)在其他電腦上遠(yuǎn)程訪問(wèn)
??跟上面的“通過(guò)本機(jī)”訪問(wèn)一樣因俐,只不過(guò)把IP Address改為安裝寶塔面板的機(jī)器(服務(wù)器)的IP Address即可拇惋。
三、登錄寶塔面板的管理界面
??直接輸入初始配置中帳號(hào)密碼登錄即可抹剩。
??登錄后會(huì)推薦一些應(yīng)用撑帖,可以直接叉掉,后期自行安裝澳眷。
四胡嘿、在寶塔面板中安裝應(yīng)用
1、安裝并設(shè)置PHP
(1)安裝
??①按上圖所示在寶塔面板的管理界面中點(diǎn)擊軟件商店
——運(yùn)行環(huán)境
钳踊,找到PHP-7.4
衷敌,點(diǎn)擊后面的安裝
勿侯,會(huì)彈出如下兩圖所示的確認(rèn)對(duì)話框。
??②依次點(diǎn)擊安裝
缴罗、確定
按鈕助琐,繼續(xù)到下一步,開(kāi)始安裝面氓。
??③安裝完成后會(huì)提示當(dāng)前沒(méi)有任務(wù)兵钮!
,如下圖舌界。
??按F5
鍵刷新頁(yè)面掘譬,出現(xiàn)如下圖所示的界面,即為安裝完畢呻拌,并且已經(jīng)執(zhí)行屁药。
**注意:此處之所以選擇安裝PHP7.4的版本,是因?yàn)橄旅嫘枰惭b的phpMyAdmin需要該版本的支持柏锄。而單獨(dú)安裝目前寶塔面板中較新的PHP8.0和PHP8.1兩個(gè)版本會(huì)均會(huì)導(dǎo)致phpMyAdmin安裝失敗。實(shí)際操作中發(fā)現(xiàn)如果單獨(dú)只安裝PHP7.4版本复亏,后面安裝Snipe-IT時(shí)趾娃,又會(huì)導(dǎo)致網(wǎng)頁(yè)不能打開(kāi)。
所以下面需要重復(fù)以上步驟再安裝PHP8.1版本缔御。所以同時(shí)安裝PHP7.4和PHP8.1版本抬闷。
(2)重復(fù)以上步驟安裝PHP8.1版本,步驟略耕突。
(3)設(shè)置
??在上圖中找到安裝好的PHP8.1笤成,點(diǎn)擊后面的設(shè)置
,進(jìn)入到PHP設(shè)置界面眷茁。
說(shuō)明:
PHP8.1是為Snipe-IT準(zhǔn)備的炕泳,所以只需要對(duì)應(yīng)設(shè)置PHP8.1即可。而PHP7.4是為phpMyAdmin服務(wù)的上祈,沒(méi)有此要求培遵,可以不設(shè)置。
①解禁部分必需的PHP函數(shù)
??查詢網(wǎng)上的資料說(shuō)登刺,PHP包管理工具Composer需要使用部分被禁用掉的有風(fēng)險(xiǎn)的函數(shù)籽腕,包括putenv、proc_open纸俭、pcntl_signal皇耗、proc_get_status,需要對(duì)這些函數(shù)解除禁用揍很。
a.在設(shè)置界面中點(diǎn)擊禁用函數(shù)
。
b.依次找到上面所說(shuō)的幾個(gè)函數(shù)抗蠢,點(diǎn)擊后面的刪除
二庵,把對(duì)應(yīng)的函數(shù)刪除掉。如果找不到某個(gè)函數(shù)壕翩,說(shuō)明該函數(shù)沒(méi)有在禁用列表中,可以不予理會(huì)傅寡。
②安裝擴(kuò)展
點(diǎn)擊
安裝擴(kuò)展
放妈,在擴(kuò)展中找到fileinfo,點(diǎn)擊后面的安裝
即可荐操。這個(gè)版本是默認(rèn)已經(jīng)安裝好的芜抒,可以忽略本步驟。
③將PHP安裝目錄添加到PATH路徑中去
??安裝路徑位于寶塔面板安裝目錄中的php\xx
目錄中托启。其中xx
是PHP的版本號(hào)宅倒,比如本例中的PHP版本8.1,則此處的xx
為81
屯耸,本例中的寶塔面板安裝在d:\software
中拐迁,則PHP的完整路徑為d:\SoftWare\BtSoft\php\81
(前面安裝的php74并不是給Snipe-IT使用的,所以不需要添加到path環(huán)境變量中疗绣,而且這影響到下面Key的生成)线召。
在服務(wù)器中右擊此電腦
——屬性
——高級(jí)系統(tǒng)設(shè)置
——高級(jí)
標(biāo)簽頁(yè)——環(huán)境變量
——系統(tǒng)變量
——雙擊path
——在編輯環(huán)境變量
對(duì)話框中添加d:\SoftWare\BtSoft\php\81
,最后依次點(diǎn)擊確定
完成操作多矮。
通常需要重啟電腦或注銷一下用戶才能使用該環(huán)境變量生效缓淹。
2、安裝WEB運(yùn)行環(huán)境Nginx
(1)安裝
與前面安裝PHP的步驟相同塔逃,具體如下圖讯壶,不一一詳述。
3湾盗、安裝MySQL
方法同上伏蚊。
需要注意的是,在安裝過(guò)程中要選擇一下需要安裝的MySQL的版本號(hào)淹仑,如下圖丙挽,這兒選擇8.0版本。
4匀借、安裝phpMyAdmin
??phpMyAdmin是一款WEB端的MySQL管理工具颜阐。如果不需要訪問(wèn)MySQL數(shù)據(jù)庫(kù),可以不安裝吓肋。
安裝方法與上面應(yīng)用相同凳怨,如下圖。
安裝過(guò)程中注意選擇版本,我個(gè)人習(xí)慣使用最新版本肤舞,如下圖紫新。
注意:如果phpMyAdmin安裝過(guò)程結(jié)束刷新后,phpMyAdmin還是出現(xiàn)如圖所示的樣子李剖,說(shuō)明安裝沒(méi)有成功芒率,這時(shí)候就要查看一下安裝日志示中的報(bào)錯(cuò)提示是否是因?yàn)榍懊姘惭b了phpMyAdmin不支持的php版本。
五篙顺、下載Snipe-IT偶芍,并在寶塔面板中做相應(yīng)設(shè)置
1、下載Snipe-IT
??Snipe-IT是一款開(kāi)源的軟件德玫,發(fā)布在github上匪蟀。下載方法有兩種。分別是直接到github.com上下載壓縮包宰僧,或是通過(guò)git命令的方式進(jìn)行下載材彪。
(1)直接在github.com上下載
??按下圖所示直接訪問(wèn)https://github.com/snipe/snipe-it,按下圖所示直接下載zip包琴儿。
這兒要說(shuō)一下段化,壓縮包解壓之前,需要先確定安裝位置造成。Linux中一般網(wǎng)站都是存放在
/www/wwwroot/
下穗泵,而Windows使用IIS則一般是將網(wǎng)站放在c:\inetpub\wwwroot
目錄中。這兒結(jié)合兩種情況以及Windows本身的規(guī)則和磁盤占用情況谜疤,在D盤新建d:\wwwroot
文件夾用來(lái)存入網(wǎng)站。然后再新建d:\wwwroot\snipe-it
文件夾现诀。然后將下載的壓縮包解壓到d:\wwwroot\snipe-it
中去夷磕。注意,壓縮包打開(kāi)時(shí)仔沿,里面嵌套了一層文件夾坐桩,只需要把文件夾中的所有文件解壓到相應(yīng)位置即可,不需要連最上層的嵌套文件夾一起解壓封锉。具體路徑如下圖绵跷。說(shuō)明:
??此處的
d:\wwwroot\snipe-it
并不是最終的安裝文件夾。
(2)使用git命令下載
說(shuō)明:
Git是一個(gè)程序員常用的項(xiàng)目版本控制系統(tǒng)成福,可以直接對(duì)github等開(kāi)源代碼托管網(wǎng)站進(jìn)行上傳碾局、下載、同步奴艾、比較等操作净当。有圖形界面和命令行界面。此處沒(méi)有必要安裝一個(gè)完整的Git系統(tǒng),只需要下載個(gè)便攜版本即可像啼。
①下載安裝Git
??下載地址:https://git-scm.com/download/win
根據(jù)Windows的版本來(lái)選擇對(duì)應(yīng)的32位或是64位的便攜版本俘闯。如下圖
PortableGit-2.36.1-64-bit.7z.exe
的自解壓的壓縮包。直接雙擊或是用WinRAR之類的壓縮軟件直接打開(kāi)忽冻,均可以執(zhí)行解壓操作真朗。不管解壓后這個(gè)目錄具體的位置放在哪里,都要把這個(gè)目錄中的
cmd
文件夾添加到windows的環(huán)境變量path
中去僧诚,這樣可以在cmd
環(huán)境中的任何位置直接執(zhí)行g(shù)it.exe命令遮婶。臨時(shí)添加的話可以在
cmd
中使用以下代碼實(shí)現(xiàn):
path %path%;D:\SoftWare\PortableGit\cmd
??其中D:\SoftWare\PortableGit\cmd
根據(jù)Git實(shí)際的安裝位置進(jìn)行修改。
②通過(guò)git命令下載Snipe-IT
??直接在CMD命令行中執(zhí)行以下命令
git clone https://github.com/snipe/snipe-it d:\wwwroot\snipe-it
??其中的d:\wwwroot\snipe-it
僅是本例中的地址振诬,具體可根據(jù)需要來(lái)決定蹭睡。
??該命令執(zhí)行后,正常情況下會(huì)出現(xiàn)類似下面的安裝過(guò)程赶么。
C:\Users\Administrator>git clone https://github.com/snipe/snipe-it d:\wwwroot\snipe-it
Cloning into 'd:\wwwroot\snipe-it'...
remote: Enumerating objects: 144604, done.
remote: Counting objects: 100% (1339/1339), done.
remote: Compressing objects: 100% (444/444), done.
remote: Total 144604 (delta 952), reused 1259 (delta 895), pack-reused 143265
Receiving objects: 100% (144604/144604), 142.61 MiB | 1.01 MiB/s, done.
Resolving deltas: 100% (95529/95529), done.
Updating files: 100% (6536/6536), done.
C:\Users\Administrator>
??但因?yàn)镚itHub網(wǎng)站在國(guó)內(nèi)有時(shí)會(huì)不能訪問(wèn)或訪問(wèn)緩慢等情況肩豁,有可能導(dǎo)致下載不成功的情況出現(xiàn)。這種情況請(qǐng)調(diào)整網(wǎng)絡(luò)環(huán)境辫呻。
2清钥、在寶塔面板中添加網(wǎng)站
(1)寶塔面板中點(diǎn)擊如下圖如示的網(wǎng)站
,切換到網(wǎng)站管理界面放闺。
(2)點(diǎn)擊上圖中的
添加網(wǎng)站
祟昭,彈出如下圖的添加網(wǎng)站
的界面。大多數(shù)內(nèi)容參照下圖中的設(shè)置怖侦。
??①域名
此處必須填寫篡悟,不可以省略。使用什么域名匾寝、IP地址以及使用什么端口來(lái)訪問(wèn)這個(gè)網(wǎng)站就由此處填寫什么來(lái)決定搬葬。當(dāng)然,域名和IP地址必須是真實(shí)有效的艳悔。
如何填寫急凰,在文本框中未填寫任何內(nèi)容時(shí)有很詳細(xì)的說(shuō)明。如果沒(méi)有域名就填寫IP地址加端口號(hào)的格式猜年。
??①備注
理論上來(lái)說(shuō)是隨便填寫抡锈,但最好填寫一些有用的信息,比如網(wǎng)站的用途乔外、說(shuō)明等
??②根目錄
參照Snipe-IT下載時(shí)的實(shí)際存放安裝位置選擇,本例中是d:\wwwroot\snipe
床三。寶塔面板會(huì)根據(jù)這兒填寫的內(nèi)容自動(dòng)創(chuàng)建對(duì)應(yīng)的文件夾,并在文件夾中生成.htaccess
杨幼、.user.ini
勿璃、404.html
、index.html
四個(gè)文件,如下圖补疑。
注意:
此處輸入的路徑并不是下載時(shí)所使用的d:\wwwroot\snipe-it
歧沪。就是因?yàn)槿绻苯邮褂胹nipe-it時(shí),寶塔面板自動(dòng)生成的.htaccess
莲组、.user.ini
诊胞、404.html
、index.html
四個(gè)文件會(huì)覆蓋掉下載路徑中的同名文件锹杈。
??③FTP
出于管理的需要可以創(chuàng)建撵孤,但不是必須。本例中因?yàn)榍懊娌](méi)有安裝FTP竭望,同時(shí)實(shí)際使用中有其他的辦法對(duì)文件進(jìn)行管理邪码,所以選擇不創(chuàng)建
。
??④數(shù)據(jù)庫(kù)
Snipe-IT支持MySQL咬清,在創(chuàng)建站點(diǎn)時(shí)可以同時(shí)為該站點(diǎn)創(chuàng)建數(shù)據(jù)庫(kù)闭专,所以按如圖所示選擇即可。
代碼集中有utf-8及utf8mb4的選項(xiàng)旧烧,utf-8是utf8mb4的子集影钉,為了避免實(shí)際使用過(guò)程中出現(xiàn)不可預(yù)知的情況,直接選擇utf8mb4掘剪,從網(wǎng)絡(luò)上所查詢的資料來(lái)看平委,實(shí)際使用過(guò)程中使用utf-8似乎也可以。
??⑤數(shù)據(jù)庫(kù)設(shè)置用戶名夺谁、密碼
為數(shù)據(jù)庫(kù)創(chuàng)建用戶,并設(shè)置用戶名廉赔、密碼。這個(gè)根據(jù)自己的喜歡來(lái)做就可以了匾鸥。
??⑥程序類型
沒(méi)什么好說(shuō)的昂勉,這兒不讓改。
??⑦PHP版本
基本上扫腺,我們?cè)谏厦姘惭b了什么版本的php,這兒就選擇什么版本。
??⑧網(wǎng)站分類
如果不是網(wǎng)站很多的話村象,這兒無(wú)所謂選不選笆环。而且前面并沒(méi)有創(chuàng)建多個(gè)網(wǎng)站分類,本例中這兒也沒(méi)什么好選的厚者。
(3)提交
以上內(nèi)容填寫好后,點(diǎn)提交
按鈕躁劣,如果出現(xiàn)以下界面說(shuō)明網(wǎng)站創(chuàng)建成功。
直接叉掉上圖的提示框后可以繼續(xù)其他操作库菲。
(4)將新建網(wǎng)站自動(dòng)生成的snipe文件夾刪除账忘,并將d:\wwwroot\snipe-it
改為d:\wwwroot\snipe
。
3、確認(rèn)數(shù)據(jù)庫(kù)是否建立成功
在添加網(wǎng)站時(shí)可以同時(shí)建立數(shù)據(jù)庫(kù)鳖擒,在此我們點(diǎn)擊“數(shù)據(jù)庫(kù)”溉浙,查看數(shù)據(jù)庫(kù)是否建立成功。
如果數(shù)據(jù)庫(kù)未建立成功蒋荚,可以手工在此處為剛建立的網(wǎng)站建立數(shù)據(jù)庫(kù)戳稽。
4、安裝Composer
??Composer 是 PHP5.3以上 的一個(gè)依賴管理工具期升。根據(jù)在網(wǎng)上找到的資料惊奇,需要安裝。
(1)升級(jí)Composer
??寶塔面板中已經(jīng)集成了Composer的下載安裝操作播赁,我們只需要在寶塔面板中下載安裝即可颂郎。
??①在寶塔面板中點(diǎn)擊網(wǎng)站
,然后點(diǎn)擊對(duì)應(yīng)網(wǎng)站后面的設(shè)置
容为,如下圖乓序。
??在彈出的界面中點(diǎn)擊
Ccomposer
,然后點(diǎn)擊下圖界面中的升級(jí)Composer
,先將Composer升級(jí)到最新版本舟奠。??如果有新的版本竭缝,就會(huì)執(zhí)行升級(jí),否則會(huì)提示
當(dāng)前已經(jīng)是最新的版本
沼瘫。
(2)安裝Composer
??依次按上圖所示填入或選擇各項(xiàng)內(nèi)容抬纸。
①PHP版本:自動(dòng)選擇
即可耿戚,如果選擇PHP-81會(huì)報(bào)錯(cuò)湿故。
②執(zhí)行參數(shù):選擇Install
膜蛔。
√持怼③補(bǔ)充命令:填入--no-dev --prefer-source --ignore-platform-reqs
。
≡砉伞④鏡像源:默認(rèn)阿里源(mirrors.alyyun.com)
即可墅茉。
⑤執(zhí)行目錄:默認(rèn)為當(dāng)前網(wǎng)站目錄呜呐,具體是什么意思不太清楚就斤,因?yàn)閷?shí)際Composer安裝的位置并不在網(wǎng)站目錄中。我最終是通過(guò)搜索最終在寶塔面板的安裝目錄中的panel\script
里同找到composer.phar
文件蘑辑。
最后點(diǎn)擊執(zhí)行
會(huì)彈出 如下界面洋机。
此處等待一會(huì)后會(huì)自動(dòng)開(kāi)始安裝,如下圖洋魂。
安裝完成后绷旗,叉掉安裝界面即可喜鼓。
六、其它一些設(shè)置
1衔肢、設(shè)置目錄權(quán)限
??從網(wǎng)上的搜索到的資料是需要將網(wǎng)站目錄中的public\uploads
和的所有者給www
用戶庄岖,同時(shí)賦予www
用戶對(duì)于該目錄的完全權(quán)限,其他用戶則只保留讀與執(zhí)行的權(quán)限膀懈。
該資料的背景中在CentOS7中進(jìn)行Snipe-IT的安裝顿锰,具體到Windows中使用寶塔面板進(jìn)行安裝,需要根據(jù)具體情況處理启搂。
(1)查看Nginx是用什么用戶運(yùn)行
??寶塔面板中點(diǎn)擊軟件商店
硼控,在已安裝
中找到Nginx
,點(diǎn)擊后面的設(shè)置
胳赌,如下圖牢撼。
在彈出的界面中(如下圖),選擇
運(yùn)行用戶
,查看運(yùn)行用戶是管理員
還是'www用戶疑苫。本例中是管理員用戶熏版,個(gè)人理解只要保證管理員用戶能對(duì)
public\uploads`文件夾具體完全讀寫權(quán)限,其他用戶(組)具有讀與執(zhí)行權(quán)限即可捍掺。(2)修改權(quán)限
??在服務(wù)器上撼短,直接在Windows中找到網(wǎng)站目錄中的
public\uploads
文件夾。在文件夾上右擊挺勿,選擇
屬性
曲横,在彈出的文件夾屬性對(duì)話框中選擇安全
標(biāo)簽頁(yè)。按照上面的要求做以下幾項(xiàng)操作:〔黄俊①給administrators組賦于讀取禾嫉、寫入、執(zhí)行的權(quán)限蚊丐。
一般來(lái)說(shuō)熙参,默認(rèn)不需要修改。
÷蟊浮②添加everyone用戶,并賦予該用戶讀取與執(zhí)行權(quán)限孽椰,取消寫入權(quán)限。
??具體的操作只是普通的Windows操作凛篙,不作詳細(xì)步驟說(shuō)明黍匾。
2、創(chuàng)建并修改配置文件
(1)創(chuàng)建配置文件
??直接在網(wǎng)站目錄中找到.env.example
文件鞋诗,將該文件復(fù)制一份,并改名為.env
迈嘹。需要注意的是削彬,如果在資源管理器中直接進(jìn)行修改全庸,會(huì)提示“必須鍵入文件名”的提示,如下圖融痛。這是因?yàn)閃indows中把文件名最后一個(gè).
后面的視做擴(kuò)展名壶笼,最后一個(gè).
前面的視作文件名,而這個(gè)文件最后一個(gè).
前面沒(méi)有任何字符雁刷,Windows認(rèn)為該文件沒(méi)有文件名覆劈,而這是不被允許的。
??此時(shí)可以進(jìn)入到CMD中進(jìn)行修改沛励,具體命令參見(jiàn)下方责语。
??具體到命令中涉及到的路徑,根據(jù)實(shí)際網(wǎng)站路徑來(lái)確認(rèn)目派。
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation坤候。保留所有權(quán)利。
C:\Users\Administrator>d:
D:\>cd D:\wwwroot\snipe
D:\wwwroot\snipe>copy .env.example .env
已復(fù)制 1 個(gè)文件企蹭。
D:\wwwroot\snipe>
(2)修改配置文件
①編輯方法介紹
??直接對(duì)新生成的.env文件進(jìn)行編輯白筹,可以直接使用記事本或是其他文本編輯器對(duì)該文件編輯,也可以直接在寶塔面板的文件
中對(duì)該文件進(jìn)行編輯谅摄。
??在上圖所示界面中雙擊
.env
文件徒河,即可對(duì)該文件進(jìn)行編輯,如下圖送漠。具體操作細(xì)節(jié)略顽照。②修改內(nèi)容
??見(jiàn)以下代碼中注釋部分。
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=production
APP_DEBUG=false
APP_KEY=ChangeMe
APP_URL=xxx.xxx.xxx.xxx #網(wǎng)站域名
APP_TIMEZONE='Asia/Shanghai' #默認(rèn)時(shí)區(qū)
APP_LOCALE=zh-cn #默認(rèn)語(yǔ)言
MAX_RESULTS=500
# --------------------------------------------
# REQUIRED: UPLOADED FILE STORAGE SETTINGS
# --------------------------------------------
PRIVATE_FILESYSTEM_DISK=local
PUBLIC_FILESYSTEM_DISK=local_public
#PRIVATE_FILESYSTEM_DISK=s3_private
#PUBLIC_FILESYSTEM_DISK=s3_public
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1 #數(shù)據(jù)庫(kù)服務(wù)器地址
DB_DATABASE=null #數(shù)據(jù)庫(kù)名稱
DB_USERNAME=null #數(shù)據(jù)庫(kù)用戶名
DB_PASSWORD=null #數(shù)據(jù)庫(kù)密碼
DB_PREFIX=null
DB_DUMP_PATH='D:\\SoftWare\\BtSoft\\mysql\\MySQL8.0\\bin' # mysqldump.exe文件路徑
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
# --------------------------------------------
# OPTIONAL: SSL DATABASE SETTINGS
# --------------------------------------------
DB_SSL=false
DB_SSL_IS_PAAS=false
DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
……
說(shuō)明 :
數(shù)據(jù)庫(kù)服務(wù)器地址:網(wǎng)上查到的資料是螺男,這兒要寫清楚網(wǎng)站訪問(wèn)的url棒厘,只有通過(guò)此處填寫的url訪問(wèn)Snipe-it才可以看到上傳的圖片。但實(shí)際測(cè)試過(guò)程中我發(fā)現(xiàn)下隧,在內(nèi)網(wǎng)中(外網(wǎng)沒(méi)有測(cè)試)奢人,此處留空才可以看到正確的圖片。
關(guān)于DB_DUMP_PATH
項(xiàng)淆院,是為了指明mysqldump.exe
文件的位置何乎。此處很重要,如果路徑不對(duì)土辩,則使用備份功能時(shí)會(huì)報(bào)錯(cuò)支救。mysqldump.exe
是mysql中的一個(gè)可執(zhí)行文件,具體位置根據(jù)安裝的mysql版本不同會(huì)有些區(qū)別拷淘。一個(gè)笨方法就是直接通過(guò)文件搜索找到該文件的位置各墨,將路徑填入此處。本例中的MySQL也是通過(guò)寶塔面板安裝的启涯。具體路徑如上面代碼中所示贬堵。注意恃轩,填寫時(shí),分隔符應(yīng)該使用\\
黎做,而不是單個(gè)的\
寝凌,此處與正常路徑表達(dá)方式不一樣裕偿。
3、生成Key
(1)先在php安裝目錄(d:\SoftWare\BtSoft\php\74)中新建composer.bat批處理文件,內(nèi)容如下:
@echo off
php D:\SoftWare\BtSoft\panel\script\composer.phar
(2)在cmd中切換d:\wwwroot\snipe為當(dāng)前文件夾萎馅,并執(zhí)行生成key的命令渴肉。
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation命咐。保留所有權(quán)利壹堰。
C:\Users\Administrator>d:
D:\>cd wwwroot\snipe
D:\wwwroot\snipe>php artisan key:generate
**************************************
* Application In Production! *
**************************************
Do you really wish to run this command? (yes/no) [no]:
> yes
Application key set successfully.
D:\wwwroot\snipe>
注意:
代碼中的php artisan key:generate
一行中的php
是指PHP安裝目錄中的php.exe
文件,此處一定要保證執(zhí)行的是php8.1版本安裝目錄中的php.exe
程序楣铁。這個(gè)在前面講到php安裝時(shí)玖雁,只添加PHP8.1版本的安裝目錄到PATH環(huán)境變量,就是為了保證此處的命令執(zhí)行盖腕。
(3)確認(rèn)key是否生成成功
??打印網(wǎng)站目錄中的.env文件赫冬,查看APP_KEY=
項(xiàng)后面是否如下面代碼中的內(nèi)容,如果是即說(shuō)明key生成成功溃列。
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=production
APP_DEBUG=false
APP_KEY=base64:tIcOuGKfI5Nt0UqeRqxxxh7nUyyy3ytF+//O2yM7wX0=
APP_URL=127.0.0.1
APP_TIMEZONE='Asia/Shanghai'
APP_LOCALE=zh-cn
MAX_RESULTS=500
(4)關(guān)于key
??我在網(wǎng)上找了關(guān)于php artisan key:generate
命令以及這個(gè)Key的作用劲厌,但大多數(shù)都是照搬自官網(wǎng)的解釋,引用如下:
在部署項(xiàng)目的時(shí)候必須執(zhí)行听隐,尤其是從 git 上拉下來(lái)的項(xiàng)目补鼻,需要手動(dòng)配置 .env 文件。
php artisan key:generate雅任,項(xiàng)目中所有的的 OpenSSL 加密都是依賴它生成的风范,包括 Cookie,Session沪么,還有 JWT 這些組件硼婿。
所以如果你有生產(chǎn)環(huán)境和開(kāi)發(fā)環(huán)境,最好都使用命令生成 key禽车,避免重復(fù)寇漫,而且 key 一旦泄露項(xiàng)目就危險(xiǎn)了。
話又說(shuō)回來(lái)殉摔,如果沒(méi)有配置 app_key 項(xiàng)目是運(yùn)行不起來(lái)的州胳。
生成后的key位置在.env里面。
??我本人對(duì)php并不了解逸月,上面的這段話也不是很理解栓撞。總結(jié)就是這個(gè)key沒(méi)有不行碗硬。如果有人能幫我詳細(xì)說(shuō)一下是什么意思瓤湘,非常感謝捌归。
4、設(shè)置網(wǎng)站的運(yùn)行目錄
??(1)在寶塔面板中點(diǎn)擊網(wǎng)站
岭粤,如下圖,再點(diǎn)擊相應(yīng)網(wǎng)站后面的設(shè)置
特笋。
??(2)在彈出的界面中點(diǎn)擊
網(wǎng)站目錄
剃浇,然后將運(yùn)行目錄
改為如下圖的public
。??(3)最后點(diǎn)擊后面的
保存
按鈕猎物。
5虎囚、對(duì)網(wǎng)站配置文件進(jìn)行配置
??在上圖中點(diǎn)擊配置文件
,然后如下圖輸入以下代碼蔫磨。最后點(diǎn)擊保存
按鈕即可淘讥。
此處需要注意是上圖中綠框中的代碼
fastcgi_pass 127.0.0.1:20081;
,此處20081端口并不是固定的堤如。如果填寫了不正確的端口蒲列,會(huì)導(dǎo)致網(wǎng)站不能訪問(wèn)。正確的端口可通過(guò)如下方法查詢搀罢。
在寶塔面板中點(diǎn)擊
軟件商店
——已安裝
蝗岖,找到Nginx
,然后點(diǎn)擊右邊的文件夾圖標(biāo)榔至,會(huì)跳轉(zhuǎn)到如下界面抵赢。在上圖所示界面中,依次打開(kāi)
D:/SoftWare/BtSoft/nginx/conf/php
文件夾唧取,找到81.conf
文件(根據(jù)所使用的php版本來(lái)決定是哪個(gè)文件铅鲤,本例中Snipe-IT使用的是php8.1版本的php,所以找到81.conf
文件)枫弟,直接雙擊邢享,打開(kāi)該文件,如下圖媒区。如上圖紅框中的內(nèi)容所示驼仪,此處端口即
20081
,將此端口按上面所述填入到配置文件的相應(yīng)位置即可袜漩。
server
{
listen 99;
server_name 10.5.2.11 127.0.0.1;
index index.php index.html index.htm default.php default.htm default.html;
root d:/wwwroot/snipe/public/;
location ~ \.php$ {
root d:/wwwroot/snipe/public/;
try_files $uri $uri/ =404;
fastcgi_pass 127.0.0.1:20081;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /temp/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /temp/null;
}
#反代清理緩存配置
location ~ /purge(/.*) {
proxy_cache_purge cache_one $1$is_args$args;
}
#proxy 反向代理
include proxy/10.5.2.11/*.conf;
#REWRITE-START
include rewrite/10.5.2.11/*.conf;
#REWRITE-END
#redirect 重定向
include redirect/10.5.2.11/*.conf;
#禁止訪問(wèn)的文件或目錄
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一鍵申請(qǐng)SSL證書(shū)驗(yàn)證目錄相關(guān)設(shè)置
location ~ \.well-known{
allow all;
}
access_log D:/SoftWare/BtSoft/wwwlogs/10.5.2.11.log;
error_log D:/SoftWare/BtSoft/wwwlogs/10.5.2.11.error.log;
}
6绪爸、設(shè)置偽靜態(tài)
(1)在上圖所示界面中點(diǎn)擊偽靜態(tài)
,在文本框中輸入如下圖所示代碼宙攻,最后點(diǎn)擊保存
奠货。
??以上代碼如下,可復(fù)制座掘。
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
??實(shí)測(cè)递惋,如果偽靜態(tài)中不設(shè)置該段代碼柔滔,保留空白,網(wǎng)站也可以運(yùn)行萍虽,但在導(dǎo)入數(shù)據(jù)時(shí)會(huì)報(bào)錯(cuò)睛廊。
七、安裝Snipe-IT
??以上的工作做完杉编,就可以正式安裝Snipe-IT了超全。
??1、直接在瀏覽器中訪問(wèn)建站時(shí)錄入的域名(如下圖)邓馒。
本例中為
http://xxx.xxx.xxx.xxx:99/setup
嘶朱,出于安全考慮,此處具體的IP地址做了打碼處理光酣。如果前面安裝沒(méi)有問(wèn)題疏遏,此時(shí)訪問(wèn)以上url后會(huì)出現(xiàn)以下界面。
此處對(duì)Snipe-IT的安裝環(huán)境做了一個(gè)檢測(cè)救军,本例中最后一項(xiàng)的
Email
必須在點(diǎn)擊Sent Test
做發(fā)送測(cè)試成功才會(huì)顯示代表通過(guò)的√
财异。Email的相關(guān)配置在.env中,具體參見(jiàn)下面唱遭。
打開(kāi).env文件宝当,找到如下的配置內(nèi)容,進(jìn)行對(duì)應(yīng)的修改即可胆萧。
不配置Email相關(guān)內(nèi)容庆揩,此處點(diǎn)擊
Send Test
也會(huì)測(cè)試失敗,但并不會(huì)影響Snipe-IT的安裝與使用跌穗。
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=smtp
MAIL_HOST=email-smtp.us-west-2.amazonaws.com #服務(wù)器地址
MAIL_PORT=587 #SMTP端口
MAIL_USERNAME=YOURUSERNAME #用戶名
MAIL_PASSWORD=YOURPASSWORD #密碼
MAIL_ENCRYPTION=null #是否加密订晌,如果是null代表不加密,否則可以根據(jù)加密方式填寫蚌吸,比如ssl
MAIL_FROM_ADDR=you@example.com #發(fā)送郵件的地址
MAIL_FROM_NAME='Snipe-IT' #發(fā)送郵件顯示的發(fā)送人
MAIL_REPLYTO_ADDR=you@example.com #接受郵件的地址
MAIL_REPLYTO_NAME='Snipe-IT' #接受郵件的接收人
MAIL_AUTO_EMBED_METHOD='attachment'
??2锈拨、點(diǎn)擊以上界面的中的Next:Create Database Tables
進(jìn)入下一步,在數(shù)據(jù)庫(kù)中創(chuàng)建表羹唠,如下圖奕枢。
??3、繼續(xù)點(diǎn)擊上圖中右下角的
general.setup_migrations)create_user
佩微,為Snipe-IT創(chuàng)建用戶缝彬,如下圖。??圖中紅框框起來(lái)的部分是必填項(xiàng)目哺眯。
??(1)站點(diǎn)名稱:為這個(gè)系統(tǒng)起個(gè)名稱谷浅,這個(gè)名稱會(huì)顯示在主頁(yè)上。系統(tǒng)安裝完成后仍舊可以修改。
??(2)默認(rèn)語(yǔ)言:如果是中文用戶一疯,此處改為
Chinese Simplified
撼玄。系統(tǒng)安裝完成后仍舊可以修改。??(3)默認(rèn)貨幣:如果要選擇人民幣墩邀,此處輸入
RMB
.系統(tǒng)安裝完成后仍舊可以修改掌猛。??(4)生成自動(dòng)遞增的資產(chǎn)標(biāo)簽:我的理解是資產(chǎn)編號(hào)自動(dòng)加1,所以此處我是勾選的眉睹。僅供參考留潦。系統(tǒng)安裝完成后仍舊可以修改。
??(5)完整多企業(yè)支持:我的理解可以一套系統(tǒng)服務(wù)于多個(gè)企業(yè)主體辣往,建立多個(gè)賬套。根據(jù)需要選擇是否打勾殖卑。系統(tǒng)安裝完成后仍舊可以修改站削。
??(6)前綴(可選):我還不太清楚具體使用中前綴的相關(guān)情況。系統(tǒng)安裝后仍舊可以修改孵稽。
??(7)電子郵件域名:電子郵件地址中
@
符號(hào)后面的部分许起。??(8)電子郵件格式:根據(jù)喜好選一個(gè)吧。
??(9)名字:略
??(10)姓氏:略
??(11)郵箱:綁定這個(gè)帳戶的郵箱菩鲜,以后系統(tǒng)中的相關(guān)信息可以發(fā)送到該郵箱园细。
??(12)用戶名:就是用戶名,這個(gè)要好好起個(gè)接校。該用戶默認(rèn)將是超級(jí)用戶猛频。
??(13)密碼:略
??(14)確認(rèn)密碼:略
??(15)Email my credentials to the email address above:此帳戶建立后,將相關(guān)憑據(jù)發(fā)到上面填寫的對(duì)應(yīng)的電子郵箱中蛛勉。
??4鹿寻、點(diǎn)擊上圖下方的
Next:Save User
,進(jìn)入系統(tǒng)诽凌,如下圖毡熏。??至此,所有安裝步驟完成侣诵。
八痢法、關(guān)于一些自定義的功能。
??Snipe是一個(gè)開(kāi)源軟件杜顺,可能對(duì)代碼進(jìn)行一些修改實(shí)現(xiàn)一些簡(jiǎn)單的功能财搁。以下是幾個(gè)摸索出來(lái)的地方可以進(jìn)行一些簡(jiǎn)單修改。
1躬络、中文修改
??網(wǎng)站默認(rèn)目錄下的resources\lang\zh-cn\general.php文件中定義了大量的中文翻譯妇拯,對(duì)于翻譯不準(zhǔn)確的地方,可以在這兒進(jìn)行修改。改的時(shí)候越锈,直接修改中文部分就行了仗嗦,=>
前面的部分不要?jiǎng)印?br>
比如:把借出
修改為領(lǐng)用
。
比如:在查看用戶
中的打印所有已分配資產(chǎn)
中的管理員簽字
改為部門主管簽名
甘凭。(下面代碼中已經(jīng)改了)
return [
'accessories' => '附屬品',
'activated' => '已激活',
'accessory' => '附屬品',
'accessory_report' => '配件報(bào)告',
'action' => '操作',
'activity_report' => '活動(dòng)報(bào)告',
'address' => '地址',
'admin' => '管理員',
'administrator' => '管理員',
'add_seats' => '已增加空位',
'all_assets' => '所有資產(chǎn)',
'all' => '所有',
'archived' => '已存檔',
'asset_models' => '資產(chǎn)型號(hào)',
'asset_model' => '模型',
'asset' => '資產(chǎn)',
'asset_report' => '資產(chǎn)報(bào)備',
'asset_tag' => '資產(chǎn)標(biāo)簽',
'asset_tags' => '資產(chǎn)標(biāo)簽',
'assets_available' => '可用資產(chǎn)',
'accept_assets' => '接受資產(chǎn):名稱',
'accept_assets_menu' => '接受資產(chǎn)',
'audit' => '審計(jì)',
'audit_report' => '審核日志',
'assets' => '資產(chǎn)',
'assigned_to' => '借出給:name的資產(chǎn)',
'avatar_delete' => '刪除頭像',
'avatar_upload' => '上傳頭像',
'back' => '后退',
'bad_data' => '未發(fā)現(xiàn)任何東西稀拐,是否數(shù)據(jù)錯(cuò)誤?',
'bulkaudit' => '批量審核',
'bulkaudit_status' => '盤點(diǎn)狀態(tài)',
'bulk_checkout' => '批量借出',
'bulk_edit' => '批量編輯',
'bulk_delete' => '批量刪除',
'bulk_actions' => '批量操作',
'bulk_checkin_delete' => '批量簽入 & 刪除',
'bystatus' => '按狀態(tài)',
'cancel' => '取消',
'categories' => '目錄',
'category' => '類別:',
'change' => '歸還/借出',
'changeemail' => '更改郵箱',
'changepassword' => '修改密碼',
'checkin' => '歸還',
'checkin_from' => '輸入來(lái)源',
'checkout' => '借出',
'checkouts_count' => '簽出',
'checkins_count' => '簽入',
'user_requests_count' => '請(qǐng)求',
'city' => '城市',
'click_here' => '點(diǎn)擊此處',
'clear_selection' => '清除選擇',
'companies' => '公司',
'company' => '公司',
'component' => '組件',
'components' => '組件',
'complete' => '完成',
'consumable' => '消耗品',
'consumables' => '消耗品',
'country' => '國(guó)家',
'create' => '新增',
'created' => '項(xiàng)目已創(chuàng)建',
'created_asset' => '新建資產(chǎn)',
'created_at' => '新增于',
'created_by' => '創(chuàng)建者',
'record_created' => '記錄已創(chuàng)建',
'updated_at' => '更新日期',
'currency' => 'RMB', // this is deprecated
'current' => '當(dāng)前',
'current_password' => '當(dāng)前密碼',
'customize_report' => '自定義報(bào)告',
'custom_report' => '自定義資產(chǎn)報(bào)表',
'dashboard' => '控制面板',
'days' => '天數(shù)',
'days_to_next_audit' => '距離下一次盤點(diǎn)的天數(shù)',
'date' => '日期',
'debug_warning' => '警告!',
'debug_warning_text' => '此應(yīng)用程序運(yùn)行在生產(chǎn)模式下的調(diào)試狀態(tài)丹弱。如果您的應(yīng)用程序可以被外部訪問(wèn)德撬,這會(huì)使敏感數(shù)據(jù)暴露。通過(guò)將 <code>.env</code> 文件中的<code>APP_DEBUG</code> 值設(shè)置為 <code>false</code>來(lái) 禁用調(diào)試模式躲胳。',
'delete' => '刪除',
'delete_confirm' => '是否確定刪除此項(xiàng)',
'deleted' => '已刪除',
'delete_seats' => '已移除空位',
'deletion_failed' => '刪除失敗',
'departments' => '部門',
'department' => '部門',
'deployed' => '已分配',
'depreciation' => '折舊',
'depreciations' => '折舊',
'depreciation_report' => '折舊報(bào)告',
'details' => '詳細(xì)信息',
'download' => '下載',
'download_all' => '下載全部',
'editprofile' => '修改簡(jiǎn)介',
'eol' => '壽命',
'email_domain' => '郵件域',
'email_format' => '電子郵件格式',
'employee_number' => '員工號(hào)碼',
'email_domain_help' => '這在導(dǎo)入時(shí)用以生成電子郵件地址',
'error' => '錯(cuò)誤',
'example' => '示例︰ ',
'filastname_format' => '縮寫名 姓蜓洪,例如(jsmith@example.com)',
'firstname_lastname_format' => '名 姓,例如 (jane.smith@example.com)',
'firstname_lastname_underscore_format' => '名 姓坯苹,例如(jane_smith@example.com)',
'lastnamefirstinitial_format' => '姓氏首字母(smithj@example.com)',
'firstintial_dot_lastname_format' => '縮寫名 姓隆檀,例如(jsmith@example.com)',
'first' => '首頁(yè)',
'firstnamelastname' => '名 姓,例如 (jane.smith@example.com)',
'lastname_firstinitial' => '姓 縮寫名, 例如 (smith_j@example.com)',
'firstinitial.lastname' => '縮寫名 姓粹湃,例如(jsmith@example.com)',
'firstnamelastinitial' => '名 姓恐仑,例如 (jane.smith@example.com)',
'first_name' => '名字',
'first_name_format' => '名,例如 (jane@example.com)',
'files' => '文件',
'file_name' => '文件',
'file_type' => '文件類型',
'filesize' => '文件大小',
'file_uploads' => '文件上傳',
'file_upload' => '文件上傳',
'generate' => '生成',
'generate_labels' => '生成標(biāo)簽',
'github_markdown' => '該字段可以使用 <a >Github flavored markdown語(yǔ)法</a>',
'groups' => '分組',
'gravatar_email' => 'Gravatar頭像郵件地址',
'gravatar_url' => '<a ><small>在 Gravatar.com</small></a> 更改您的頭像为鳄。',
'history' => '歷史記錄',
'history_for' => '歷史記錄',
'id' => '編號(hào)',
'image' => '圖片',
'image_delete' => '刪除圖片',
'image_upload' => '上傳圖片',
'filetypes_accepted_help' => '可接受的文件類型是 :types. 最大允許上傳大小為 :size.|可接受的文件類型是 :types. 最大允許上傳大小為 :size.',
'filetypes_size_help' => '允許最大上傳文件的大小為 :size.',
'image_filetypes_help' => '接受jpg裳仆,png,gif和svg類型的文件孤钦。文件大小應(yīng)小于 :size歧斟。',
'import' => '導(dǎo)入',
'importing' => '正在導(dǎo)入…',
'importing_help' => '您可以通過(guò)CSV文件導(dǎo)入資產(chǎn)、配件偏形、許可證构捡、組件、消耗品和用戶壳猜。 <br><br>CSV 應(yīng)以逗號(hào)分隔和格式化勾徽,并且在文檔</a> 中與 <a target="_new">樣本CSV中的標(biāo)頭匹配。',
'import-history' => '導(dǎo)入歷史記錄',
'asset_maintenance' => '資產(chǎn)維修',
'asset_maintenance_report' => '資產(chǎn)維修報(bào)表',
'asset_maintenances' => '資產(chǎn)維修',
'item' => '條目',
'item_name' => '物品名稱',
'insufficient_permissions' => '沒(méi)有足夠的權(quán)限',
'kits' => '預(yù)定義的 Kits',
'language' => '語(yǔ)言',
'last' => '最后頁(yè)',
'last_login' => '上一次登陸:',
'last_name' => '姓氏',
'license' => '授權(quán)許可',
'license_report' => '授權(quán)許可報(bào)告',
'licenses_available' => '可用許可',
'licenses' => '許可證',
'list_all' => '列出全部',
'loading' => '正在加載... 請(qǐng)稍候...',
'lock_passwords' => '此字段值將不會(huì)保存到演示安裝中统扳。',
'feature_disabled' => '演示模式下禁用此功能',
'location' => '位置',
'locations' => '地理位置',
'logo_size' => '方形標(biāo)志使用Logo + 文本看起來(lái)最好喘帚。標(biāo)志最大顯示尺寸為 50px 高 x 500px 寬度。 ',
'logout' => '注銷',
'lookup_by_tag' => '查找資產(chǎn)標(biāo)簽',
'maintenances' => '維護(hù)',
'manage_api_keys' => '管理 API 密鑰',
'manufacturer' => '制造商',
'manufacturers' => '制造商',
'markdown' => '該字段可以使用 <a >Github flavored markdown</a>',
'min_amt' => 'Min. QTY',
'min_amt_help' => '在觸發(fā)警報(bào)之前應(yīng)該可用的最小物品數(shù)咒钟。如果您不希望收到低庫(kù)存的警報(bào)吹由,請(qǐng)將最小數(shù)量留空。',
'model_no' => '型號(hào)',
'months' => '月數(shù)',
'moreinfo' => '更多信息',
'name' => '名稱',
'new_password' => '新密碼',
'next' => '下一頁(yè)',
'next_audit_date' => '下一次盤點(diǎn)時(shí)間',
'last_audit' => '上一次盤點(diǎn)',
'new' => '新朱嘴!',
'no_depreciation' => '永久',
'no_results' => '沒(méi)有結(jié)果',
'no' => '否',
'notes' => '備注',
'order_number' => '訂單號(hào)',
'page_menu' => '顯示菜單項(xiàng)',
'pagination_info' => '顯示全部',
'pending' => '待定',
'people' => '組織成員',
'per_page' => '每頁(yè)搜索結(jié)果',
'previous' => '前一頁(yè)',
'processing' => '處理中',
'profile' => '您的個(gè)人資料',
'purchase_cost' => '采購(gòu)價(jià)格',
'purchase_date' => '購(gòu)買日期',
'qty' => '數(shù)量',
'quantity' => '數(shù)量',
'quantity_minimum' => '您有 :count 件物品低于或即將低于最低數(shù)量',
'quickscan_checkin' => '快速掃描歸還',
'quickscan_checkin_status' => '歸還狀態(tài)',
'ready_to_deploy' => '待分配',
'recent_activity' => '最近操作活動(dòng)',
'remaining' => '剩余',
'remove_company' => '移除公司關(guān)聯(lián)',
'reports' => '報(bào)告',
'restored' => '恢復(fù)',
'restore' => '還原',
'requestable_models' => '可申領(lǐng)的型號(hào)',
'requested' => '已申請(qǐng)',
'requested_date' => '申領(lǐng)日期',
'requested_assets' => '已申領(lǐng)資產(chǎn)',
'requested_assets_menu' => '已申領(lǐng)資產(chǎn)',
'request_canceled' => '取消請(qǐng)求',
'save' => '保存',
'select' => '選擇',
'select_all' => '全選',
'search' => '搜索',
'select_category' => '選擇一個(gè)類別',
'select_department' => '選擇一個(gè)部門',
'select_depreciation' => '選擇失效類型',
'select_location' => '選擇地點(diǎn)',
'select_manufacturer' => '選擇生產(chǎn)商',
'select_model' => '選擇型號(hào)',
'select_supplier' => '選擇供貨商',
'select_user' => '選擇用戶',
'select_date' => '選擇日期 (YYYY-MM-DD)',
'select_statuslabel' => '選擇狀態(tài)',
'select_company' => '選擇公司',
'select_asset' => '選擇資產(chǎn)',
'settings' => '設(shè)置',
'show_deleted' => '查看已刪除',
'show_current' => '查看當(dāng)前',
'sign_in' => '登錄',
'signature' => '簽名',
'signed_off_by' => '部門主管簽名',
'skin' => '主題',
'slack_msg_note' => '將發(fā)送一條slack消息',
'slack_test_msg' => '哦哈倾鲫!看起來(lái) Slack 已經(jīng)成功應(yīng)用到 Snipe-IT 了粗合!',
'some_features_disabled' => '演示模式: 此安裝將禁用某些功能。',
'site_name' => '站點(diǎn)名稱',
'state' => '省份',
'status_labels' => '狀態(tài)標(biāo)簽',
'status' => '狀態(tài)',
'accept_eula' => '接受協(xié)議',
'supplier' => '供應(yīng)商',
'suppliers' => '供應(yīng)商',
'sure_to_delete' => '是否確認(rèn)要?jiǎng)h除',
'submit' => '提交',
'target' => '目標(biāo)',
'toggle_navigation' => 'Toogle 導(dǎo)航',
'time_and_date_display' => '時(shí)間和日期顯示',
'total_assets' => '共計(jì)資產(chǎn)',
'total_licenses' => '共計(jì)許可證',
'total_accessories' => '總配件',
'total_consumables' => '總耗材',
'type' => '類型',
'undeployable' => '無(wú)法被分配',
'unknown_admin' => '未知管理員',
'username_format' => '用戶名格式',
'username' => '用戶名',
'update' => '更新',
'upload_filetypes_help' => '允許的文件類型是 png, gif, jpg, jpeg, doc, doc, pdf, xls, xlsx, txt, lic, xml, zip, rtf 和 rar. 允許的最大上傳大小是 :size.',
'uploaded' => '已上傳',
'user' => '用戶',
'accepted' => '已接受',
'declined' => '已拒絕',
'unaccepted_asset_report' => '未接受的資產(chǎn)',
'users' => '用戶',
'viewall' => '查看全部',
'viewassets' => '查看資產(chǎn)分配',
'viewassetsfor' => '查看:name名下資產(chǎn)',
'website' => '站點(diǎn)',
'welcome' => '歡迎您乌昔,:name',
'years' => '年',
'yes' => '是',
'zip' => 'Zip',
'noimage' => '圖片未上傳或圖片無(wú)法找到隙疚。',
'token_expired' => '表單會(huì)話已過(guò)期,請(qǐng)重新提交',
'login_enabled' => '登錄已啟用',
'audit_due' => '到期審計(jì)',
'audit_overdue' => '過(guò)期審計(jì)',
'accept' => '接受 :asset',
'i_accept' => '我接受',
'i_decline' => '我拒絕',
'accept_decline' => '接受/拒絕',
'sign_tos' => '請(qǐng)?jiān)谙旅娴卿浺员砻髂夥?wù)條款:',
'clear_signature' => '清除簽名',
'show_help' => '顯示幫助',
'hide_help' => '隱藏幫助',
'view_all' => '查看全部',
'hide_deleted' => '隱藏已刪除',
'email' => '郵箱',
'do_not_change' => '不要更改',
'bug_report' => '報(bào)告錯(cuò)誤',
'user_manual' => '用戶手冊(cè)',
'setup_step_1' => '第 1 步',
'setup_step_2' => '第 2 步',
'setup_step_3' => '第 3 步',
'setup_step_4' => '第 4 步',
'setup_config_check' => '配置檢查',
'setup_create_database' => '創(chuàng)建數(shù)據(jù)庫(kù)表',
'setup_create_admin' => '創(chuàng)建管理員用戶',
'setup_done' => '完成磕道!',
'bulk_edit_about_to' => '您將要編輯以下內(nèi)容: ',
'checked_out' => '已借出',
'checked_out_to' => '借出至',
'fields' => '字段',
'last_checkout' => '上次借出',
'due_to_checkin' => '以下:count 件物品將很快歸還:',
'expected_checkin' => '預(yù)計(jì)歸還日期',
'reminder_checked_out_items' => '這是當(dāng)前借出給您的物品的提醒供屉。 如果你覺(jué)得這個(gè)列表不準(zhǔn)確(有些東西缺失,或者你認(rèn)為你從未收到的東西)溺蕉,請(qǐng)給:reply_to_name發(fā)送電子郵件伶丐,郵箱地址為::reply_to_address。',
'changed' => '已修改',
'to' => '至',
'report_fields_info' => '<p>選擇您想要在自定義報(bào)告中包含的字段疯特,然后單擊生成. 該文件(custom-asset-report-YYYY-mm-dd.csv)將自動(dòng)下載哗魂,您可以使用 Excel打開(kāi)它。</p>
<p>如果您只想導(dǎo)出某些資產(chǎn)漓雅,使用下面的選項(xiàng)來(lái)微調(diào)您的結(jié)果录别。</p>',
'range' => '范圍',
'bom_remark' => '向這個(gè)CSV文件添加一個(gè)BOM(字節(jié)順序標(biāo)記)',
'improvements' => '改進(jìn)',
'information' => '信息',
'permissions' => '權(quán)限',
'managed_ldap' => '(通過(guò) LDAP 管理)',
'export' => '導(dǎo)出',
'ldap_sync' => 'LDAP 同步',
'ldap_user_sync' => 'LDAP 用戶同步',
'synchronize' => '同步',
'sync_results' => '同步結(jié)果',
'license_serial' => '序列號(hào)/產(chǎn)品密鑰',
'invalid_category' => '無(wú)效的類別',
'dashboard_info' => '這是您的儀表板。有很多類似的故硅,但這個(gè)就是您的。',
'60_percent_warning' => '60% 完成 (警告)',
'dashboard_empty' => '看起來(lái)你還沒(méi)有添加任何東西纵搁,所以我們沒(méi)有什么東西可以顯示吃衅。 現(xiàn)在就開(kāi)始添加一些資產(chǎn)、配件腾誉、耗材或許可證吧徘层!',
'new_asset' => '新建資產(chǎn)',
'new_license' => '新建許可證',
'new_accessory' => '新建配件',
'new_consumable' => '新建耗材',
'collapse' => '收起',
'assigned' => '已分配',
'asset_count' => '資產(chǎn)計(jì)數(shù)',
'accessories_count' => '配件計(jì)數(shù)',
'consumables_count' => '耗材計(jì)數(shù)',
'components_count' => '組件計(jì)數(shù)',
'licenses_count' => '許可證計(jì)數(shù)',
'notification_error' => '錯(cuò)誤:',
'notification_error_hint' => '請(qǐng)檢查下面的表單以了解錯(cuò)誤',
'notification_success' => '成功:',
'notification_warning' => '警告:',
'notification_info' => '信息:',
'asset_information' => '資產(chǎn)信息',
'model_name' => '型號(hào)名稱:',
'asset_name' => '資產(chǎn)名稱:',
'consumable_information' => '耗材信息:',
'consumable_name' => '耗材名稱:',
'accessory_information' => '配件信息:',
'accessory_name' => '配件名稱:',
'clone_item' => '克隆物品',
'checkout_tooltip' => '借出此物品',
'checkin_tooltip' => '歸還此物品',
'checkout_user_tooltip' => '借出此物品給一個(gè)用戶',
'maintenance_mode' => '該服務(wù)暫時(shí)無(wú)法用于系統(tǒng)更新。請(qǐng)稍后再試利职。',
'maintenance_mode_title' => '系統(tǒng)暫時(shí)不可用',
'ldap_import' => '用戶密碼不應(yīng)由LDAP管理趣效。(這允許您發(fā)送忘記密碼的請(qǐng)求。)',
'purge_not_allowed' => '在 .env 文件中已禁用清除已刪除數(shù)據(jù)猪贪。 請(qǐng)聯(lián)系支持人員或您的系統(tǒng)管理員跷敬。',
'backup_delete_not_allowed' => '.env 文件中已禁用刪除備份。 請(qǐng)聯(lián)系支持人員或您的系統(tǒng)管理員热押。',
'additional_files' => '附加文件',
'shitty_browser' => 'No signature detected. If you are using an older browser, please use a more modern browser to complete your asset acceptance.',
];
2西傀、標(biāo)簽文字修改
??默認(rèn)的標(biāo)簽如下圖。網(wǎng)站默認(rèn)目錄下的resources\views\hardware\labels.blade.php文件中可以對(duì)標(biāo)簽格式做一些修改桶癣。
??比如修改每一行前面的字段名拥褂,或是增加一個(gè)自己想打印的字段,如下圖牙寞。增加了
財(cái)務(wù)編號(hào)
字段饺鹃。具體修改的內(nèi)容大約在120行左右開(kāi)始,具體的行數(shù)隨著Snipe-IT的升級(jí),不同的版本可能會(huì)有變化悔详。此處需要了解一點(diǎn)php和html知識(shí)镊屎,具體不說(shuō)詳述。
3伟端、借出單表格打印寬度調(diào)整
??在查看用戶
界面的右側(cè)杯道,有一個(gè)“打印所有已分配資產(chǎn)”,如下圖责蝠。
該功能打印借用單供用戶簽字党巾,如下圖。
上圖中有兩個(gè)問(wèn)題:
(1)表格每一行末尾的簽名列位置偏小霜医,實(shí)際操作中空間不足齿拂,導(dǎo)致用戶簽名無(wú)法簽下。
(2)表格下方
部門主管簽名
(原來(lái)為管理員簽名
肴敛,后因?yàn)樵趓esource\long\zh-cn\general.php中做了修改)豎排署海,不符合國(guó)人閱讀及審美習(xí)慣。可以通過(guò)網(wǎng)站目錄下的resources\views\users\print.blade.php進(jìn)行調(diào)整医男。
調(diào)整后效果如下圖砸狞。
resources\views\users\print.blade.php
代碼如下:
<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>{{ trans('general.assigned_to', ['name' => $show_user->present()->fullName()]) }}</title>
<style>
body {
font-family: "Arial, Helvetica", sans-serif;
}
table.inventory {
border: solid #000;
border-width: 1px 1px 1px 1px;
width: 100%;
}
@page {
size: A4;
}
table.inventory th, table.inventory td {
border: solid #000;
border-width: 0 1px 1px 0;
padding: 3px;
font-size: 12px;
}
.print-logo {
max-height: 40px;
}
</style>
</head>
<body>
@if ($snipeSettings->logo_print_assets=='1')
@if ($snipeSettings->brand == '3')
<h2>
@if ($snipeSettings->logo!='')
<img class="print-logo" src="{{ url('/') }}/uploads/{{ $snipeSettings->logo }}">
@endif
{{ $snipeSettings->site_name }}
</h2>
@elseif ($snipeSettings->brand == '2')
@if ($snipeSettings->logo!='')
<img class="print-logo" src="{{ url('/') }}/uploads/{{ $snipeSettings->logo }}">
@endif
@else
<h2>{{ $snipeSettings->site_name }}</h2>
@endif
@endif
<h2>{{ trans('general.assigned_to', ['name' => $show_user->present()->fullName()]) }}</h4>
@if ($assets->count() > 0)
@php
$counter = 1;
@endphp
<table class="inventory">
<thead>
<tr>
<th colspan="8">{{ trans('general.assets') }}</th>
</tr>
</thead>
<thead>
<tr>
<th style="width: 20px;"></th>
<th style="width: 5%;">{{ trans('admin/hardware/table.asset_tag') }}</th>
<th style="width: 10%;">{{ trans('general.name') }}</th>
<th style="width: 10%;">{{ trans('general.category') }}</th>
<th style="width: 30%;">{{ trans('admin/hardware/form.model') }}</th>
<th style="width: 15%;">{{ trans('admin/hardware/form.serial') }}</th>
<th style="width: 20%;">{{ trans('admin/hardware/table.checkout_date') }}</th>
<th data-formatter="imageFormatter" style="width: 30%;">{{ trans('general.signature') }}</th>
</tr>
</thead>
@foreach ($assets as $asset)
<tr>
<td>{{ $counter }}</td>
<td>{{ $asset->asset_tag }}</td>
<td>{{ $asset->name }}</td>
<td>{{ $asset->model->category->name }}</td>
<td>{{ $asset->model->name }}</td>
<td>{{ $asset->serial }}</td>
<td>
{{ $asset->last_checkout }}</td>
<td>
@if (($asset->assetlog->first()) && ($asset->assetlog->first()->accept_signature!=''))
<img style="width:auto;height:100px;" src="{{ asset('/') }}display-sig/{{ $asset->assetlog->first()->accept_signature }}">
@endif
</td>
</tr>
@if($settings->show_assigned_assets)
@php
$assignedCounter = 1;
@endphp
@foreach ($asset->assignedAssets as $asset)
<tr>
<td>{{ $counter }}.{{ $assignedCounter }}</td>
<td>{{ $asset->asset_tag }}</td>
<td>{{ $asset->name }}</td>
<td>{{ $asset->model->category->name }}</td>
<td>{{ $asset->model->name }}</td>
<td>{{ $asset->serial }}</td>
<td>{{ $asset->last_checkout }}</td>
<td><img style="width:auto;height:100px;" src="{{ asset('/') }}display-sig/{{ $asset->assetlog->first()->accept_signature }}"></td>
</tr>
@php
$assignedCounter++
@endphp
@endforeach
@endif
@php
$counter++
@endphp
@endforeach
</table>
@endif
@if ($licenses->count() > 0)
<br><br>
<table class="inventory">
<thead>
<tr>
<th colspan="4">{{ trans('general.licenses') }}</th>
</tr>
</thead>
<thead>
<tr>
<th style="width: 20px;"></th>
<th style="width: 40%;">{{ trans('general.name') }}</th>
<th style="width: 50%;">{{ trans('admin/licenses/form.license_key') }}</th>
<th style="width: 10%;">{{ trans('admin/hardware/table.checkout_date') }}</th>
</tr>
</thead>
@php
$lcounter = 1;
@endphp
@foreach ($licenses as $license)
<tr>
<td>{{ $lcounter }}</td>
<td>{{ $license->name }}</td>
<td>
@can('viewKeys', $license)
{{ $license->serial }}
@else
<i class="fa-lock" aria-hidden="true"></i> {{ str_repeat('x', 15) }}
@endcan
</td>
<td>{{ $license->pivot->created_at }}</td>
</tr>
@php
$lcounter++
@endphp
@endforeach
</table>
@endif
@if ($accessories->count() > 0)
<br><br>
<table class="inventory">
<thead>
<tr>
<th colspan="4">{{ trans('general.accessories') }}</th>
</tr>
</thead>
<thead>
<tr>
<th style="width: 20px;"></th>
<th style="width: 40%;">{{ trans('general.name') }}</th>
<th style="width: 50%;">{{ trans('general.category') }}</th>
<th style="width: 10%;">{{ trans('admin/hardware/table.checkout_date') }}</th>
</tr>
</thead>
@php
$acounter = 1;
@endphp
@foreach ($accessories as $accessory)
@if ($accessory)
<tr>
<td>{{ $acounter }}</td>
<td>{{ ($accessory->manufacturer) ? $accessory->manufacturer->name : '' }} {{ $accessory->name }} {{ $accessory->model_number }}</td>
<td>{{ $accessory->category->name }}</td>
<td>{{ $accessory->pivot->created_at }}</td>
</tr>
@php
$acounter++
@endphp
@endif
@endforeach
</table>
@endif
@if ($consumables->count() > 0)
<br><br>
<table class="inventory">
<thead>
<tr>
<th colspan="4">{{ trans('general.consumables') }}</th>
</tr>
</thead>
<thead>
<tr>
<th style="width: 20px;"></th>
<th style="width: 40%;">{{ trans('general.name') }}</th>
<th style="width: 50%;">{{ trans('general.category') }}</th>
<th style="width: 10%;">{{ trans('admin/hardware/table.checkout_date') }}</th>
</tr>
</thead>
@php
$ccounter = 1;
@endphp
@foreach ($consumables as $consumable)
@if ($consumable)
<tr>
<td>{{ $ccounter }}</td>
<td>
@if ($consumable->deleted_at!='')
<td>{{ ($consumable->manufacturer) ? $consumable->manufacturer->name : '' }} {{ $consumable->name }} {{ $consumable->model_number }}</td>
@else
{{ ($consumable->manufacturer) ? $consumable->manufacturer->name : '' }} {{ $consumable->name }} {{ $consumable->model_number }}
@endif
</td>
<td>{{ ($consumable->category) ? $consumable->category->name : ' invalid/deleted category' }} </td>
<td>{{ $consumable->pivot->created_at }}</td>
</tr>
@php
$ccounter++
@endphp
@endif
@endforeach
</table>
@endif
<br>
<br>
<br>
<table>
<tr>
<td style="width: 15%;">{{ trans('general.signed_off_by') }}:</td>
<td style="width: 30px;">________________________</td>
<td style="width: 18%;"></td>
<td style="width: 7%;">{{ trans('general.date') }}:</td>
<td style="width: 30%;">_________________________</td>
</tr>
</table>
</body>
</html>
??稍微有點(diǎn)html基礎(chǔ)的,看起來(lái)應(yīng)該不困難镀梭,此處不詳述了刀森。