成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

laravel項(xiàng)目一次發(fā)布導(dǎo)致的BUG(環(huán)境變量問題)

hqman / 2376人閱讀

摘要:項(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的文檔,看到以下說明:

Comments

You 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

相關(guān)文章

  • 三年前舊代碼重構(gòu)、總結(jié)與反思

    摘要:最近在維護(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)化之后,變...

    Shihira 評(píng)論0 收藏0
  • Composer 中文鏡像 / Packagist 中國(guó)全量鏡像正式發(fā)布!

    摘要:中國(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ó)全量鏡像...

    icyfire 評(píng)論0 收藏0
  • Laravel一次單元測(cè)試發(fā)現(xiàn)'BUG',分析并解決問題

    摘要:下面這段代碼是自帶的表單驗(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...

    zhiwei 評(píng)論0 收藏0
  • 基于 Laravel 模塊化開發(fā)框架 Notadd RC1 fix1 發(fā)布

    摘要:目前默認(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...

    Ryan_Li 評(píng)論0 收藏0
  • Rainbond 5.1.5發(fā)布,企業(yè)應(yīng)用市場(chǎng)遠(yuǎn)程一鍵安裝

    摘要:年月日,發(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ù)管理等方面做...

    Aomine 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

hqman

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<