摘要:項(xiàng)目一次發(fā)布導(dǎo)致的背景項(xiàng)目的某一次發(fā)布后,項(xiàng)目中連接數(shù)據(jù)庫(kù)突然報(bào)錯(cuò),而用同樣的數(shù)據(jù)庫(kù)賬號(hào)密碼在機(jī)器上連接是可以的。建議文件中,環(huán)境變量的配置,最好都加上,避免出現(xiàn)意外的災(zāi)難。
laravel項(xiàng)目一次發(fā)布導(dǎo)致的BUG 背景
laravel項(xiàng)目的某一次發(fā)布后,項(xiàng)目中連接數(shù)據(jù)庫(kù)突然報(bào)錯(cuò),而用同樣的數(shù)據(jù)庫(kù)賬號(hào)密碼在機(jī)器上連接是可以的。
臨時(shí)解決方案經(jīng)過短暫時(shí)間的排查,沒找到原因,原數(shù)據(jù)庫(kù)密碼DB_PASSWORD=abcde#142!*,修改數(shù)據(jù)庫(kù)密碼為DB_PASSWORD=abcde2019后,恢復(fù)正常。
排查思路變更密碼后,數(shù)據(jù)庫(kù)能正常連接,可見是密碼問題,同時(shí)同樣的密碼在項(xiàng)目中訪問數(shù)據(jù)庫(kù)失敗而在機(jī)器上可以訪問成功,可判斷是環(huán)境問題導(dǎo)致的密碼問題。
在項(xiàng)目中打印數(shù)據(jù)庫(kù)連接配置的日志,如下:
Array ( [driver] => mysql [host] => xxx [port] => xxx [database] => xxx [username] => xxx [password] => abcde [unix_socket] => [charset] => utf8mb4 [collation] => utf8mb4_unicode_ci [prefix] => [strict] => 1 [engine] => )
可見密碼配置在env中為DB_PASSWORD=abcde#142!*,但是在PHP代碼中讀取的數(shù)據(jù)庫(kù)密碼配置為abcde,可見#后面的內(nèi)容代碼中認(rèn)為是注釋,從而忽略了。
繼續(xù)查看jenkins發(fā)布日志,發(fā)現(xiàn)了有一段日志輸出:
Package operations: 0 installs, 3 updates, 0 removals - Updating vlucas/phpdotenv (v2.5.2 => v2.6.0): Downloading (connecting...)Downloading (0%) Downloading (15%)Downloading (100%)
發(fā)布過程中,有一個(gè)依賴包的升級(jí)。
查看vlucas/phpdotenv的文檔,看到以下說明:
CommentsYou can comment your .env file using the # character. E.g.
# this is a comment VAR="value" # comment VAR=value # comment解決方案
.env文件中,對(duì)密碼字段加上雙引號(hào),如DB_PASSWORD="abcde#142!*",然后一切恢復(fù)正常。
建議.env文件中,環(huán)境變量的配置,最好都加上"",避免出現(xiàn)意外的災(zāi)難。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30051.html
摘要:最近在維護(hù)一個(gè)三年前的舊代碼,用的是框架。單元測(cè)試和語言并發(fā)控制實(shí)際上是個(gè)蛋疼的問題,夸張一點(diǎn)說,當(dāng)時(shí)的并不能特別輕松地實(shí)現(xiàn)并發(fā),甚至不能實(shí)現(xiàn)并發(fā)。語言的功能之一就是自帶單元測(cè)試。用語言之前,我的習(xí)慣是不寫單元測(cè)試。 最近在維護(hù)一個(gè)三年前的舊代碼,用的是laravel框架。 從某些方面來講,這個(gè)代碼算是比較標(biāo)準(zhǔn)為了實(shí)現(xiàn)在規(guī)定的時(shí)間內(nèi)完成相關(guān)功能,同時(shí)程序員水平不高、經(jīng)過大量?jī)?yōu)化之后,變...
摘要:中國(guó)全量鏡像是由社區(qū)聯(lián)合又拍云與優(yōu)帆遠(yuǎn)揚(yáng)共同合作推出的公益項(xiàng)目,旨在為廣大用戶提供穩(wěn)定和高速的國(guó)內(nèi)鏡像服務(wù)。致謝中國(guó)全量鏡像的由國(guó)內(nèi)領(lǐng)先服務(wù)商又拍云提供,相信這次聯(lián)合合作能給鏡像提供穩(wěn)定快速的支持。 showImg(https://dn-phphub.qbox.me/uploads/images/201704/21/1/dDANSZZbWZ.jpg); 『Composer 中國(guó)全量鏡像...
摘要:下面這段代碼是自帶的表單驗(yàn)證的語法,不太了解的可以先查看文檔也可以使用替換和我們期望的結(jié)果是能校驗(yàn)字段最小值是,最大值是當(dāng)我單元測(cè)試的時(shí)候發(fā)現(xiàn),竟然校驗(yàn)通過了單元測(cè)試代碼文檔分析我們看一下文檔驗(yàn)證中的字段必須具有最小值。 下面這段代碼是Laravel自帶的表單驗(yàn)證的語法,不太了解的可以先查看文檔 group_num => min:1|max:21 // 也可以使用between替換m...
摘要:目前默認(rèn)使用了包,所以無需拓展。簡(jiǎn)單的消息隊(duì)列隊(duì)列為不同的后臺(tái)隊(duì)列服務(wù)提供統(tǒng)一的,例如,,,甚至其他基于關(guān)系型數(shù)據(jù)庫(kù)的隊(duì)列。隊(duì)列的目的是將耗時(shí)的任務(wù)延時(shí)處理,比如發(fā)送郵件,從而大幅度縮短請(qǐng)求和相應(yīng)的時(shí)間。 更新內(nèi)容 修復(fù)長(zhǎng)時(shí)間沒訪問后登錄后臺(tái)空白的BUG (@1459416736) 修復(fù)部分后臺(tái) server error 問題 (@1459416736) 增加 win 下 exten...
摘要:年月日,發(fā)布版本,本次版本更新帶來了全新的應(yīng)用市場(chǎng)交付體驗(yàn),并對(duì)源碼類服務(wù)的運(yùn)行機(jī)制架構(gòu)服務(wù)管理等方面做了大量?jī)?yōu)化。發(fā)布社區(qū)公開應(yīng)用。我們正在進(jìn)行的是將應(yīng)用轉(zhuǎn)化為應(yīng)用存放于應(yīng)用市場(chǎng)中供用戶直接安裝使用。 2019年7月8日,Rainbond發(fā)布5.1.5版本,本次版本更新帶來了全新的應(yīng)用市場(chǎng)交付Pipeline體驗(yàn),并對(duì)源碼類服務(wù)的運(yùn)行機(jī)制、ServiceMesh架構(gòu)、服務(wù)管理等方面做...
閱讀 639·2023-04-25 18:37
閱讀 2798·2021-10-12 10:12
閱讀 8385·2021-09-22 15:07
閱讀 578·2019-08-30 15:55
閱讀 3186·2019-08-30 15:44
閱讀 2206·2019-08-30 15:44
閱讀 1637·2019-08-30 13:03
閱讀 1571·2019-08-30 12:55