久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      升級(jí)Php 7.4帶來(lái)的兩個(gè)大坑

      由于我機(jī)器用的滾動(dòng)更新的Archlinux,不知不覺(jué)Php已經(jīng)升級(jí)到7.4了,沒(méi)想到這次更新帶來(lái)了極大的麻煩。首先是Php-fpm的新選項(xiàng)ProtectHome會(huì)導(dǎo)致經(jīng)典的File not found錯(cuò)誤,再是Php解釋器會(huì)對(duì)null類(lèi)型的下標(biāo)訪(fǎng)問(wèn)直接報(bào)錯(cuò)Trying to access array offset on value of type null。

      最近在幫一個(gè)朋友張羅一個(gè)網(wǎng)站,于是把線(xiàn)上代碼拉回本地做鏡像進(jìn)行測(cè)試。因?yàn)閣eb應(yīng)用有些奇怪的依賴(lài),為了不污染本機(jī)的環(huán)境,我就把它部署在Docker中進(jìn)行測(cè)試。Docker的基礎(chǔ)鏡像選擇了激進(jìn)的Archlinux,搭配上個(gè)月底才出爐的Php7.4。于是花了整整一個(gè)下午栽在Debug大坑中…

      首先是一把梭配好了環(huán)境后,一跑,報(bào)了Php-fpm最經(jīng)典也是最坑的錯(cuò)誤之一:File not found。配過(guò)Php-fpm的都知道出現(xiàn)這個(gè)錯(cuò)誤一般是文件權(quán)限不對(duì)或者文件路徑不對(duì),而這兩個(gè)錯(cuò)誤都是比較難找的。于是我又雙叒叕體驗(yàn)了一把大眼瞪小眼的路徑檢查,沒(méi)問(wèn)題。文件權(quán)限檢查,emmm也沒(méi)問(wèn)題呀?又返回去檢查路徑,還是沒(méi)問(wèn)題!搞到最后氣的chmod 777一把梭竟然也沒(méi)能解決問(wèn)題,有點(diǎn)懷疑人生…

      網(wǎng)上搜索Php-fpm的File not found錯(cuò)誤,雖然結(jié)果很多,可原因都只有這兩個(gè)。而這兩個(gè)原因也都被一一排除了,事情突然向神奇的角度發(fā)展起來(lái)了…

      不知過(guò)了多久之后我才想到可能是跟Php版本有關(guān)(因?yàn)槲冶緳C(jī)也跑了其它Php應(yīng)用,所以一開(kāi)始并不覺(jué)得Php有問(wèn)題)。于是我去搜了一下新版Php7.4及Php-fpm7.4的改動(dòng),一下就發(fā)現(xiàn)了罪魁禍?zhǔn)祝?/p>

      Php7.4 Commit

      (https://github.com/php/php-src/commit/40c4d7f1820df1872a71ab07fd26da45a203e37f#diff-c0605c0e7e1db864472acf66a9812d33R22)

      這個(gè)提交中添加了一個(gè)選項(xiàng):ProtectHome。顧名思義,開(kāi)啟了之后php不會(huì)去執(zhí)行在家目錄中的文件——而這個(gè)新選項(xiàng)的默認(rèn)值恰好是開(kāi)啟的。使用systemctl edit php-fpm.service添加一個(gè)選項(xiàng)覆蓋,重啟服務(wù)后,終于一切正常,并迎來(lái)第二個(gè)大坑錯(cuò)誤:

      Php中經(jīng)常使用inlcude,require等來(lái)包含其它文件。而調(diào)試發(fā)現(xiàn)在某個(gè)include之后,php直接停止執(zhí)行并報(bào)錯(cuò)Trying to access array offset on value of type null。但是在線(xiàn)上的代碼跑起來(lái)卻一點(diǎn)問(wèn)題也沒(méi)有,這就很奇怪了,跟到include的文件中之后發(fā)現(xiàn)是有個(gè)地方在訪(fǎng)問(wèn)數(shù)組元素,而數(shù)組本身卻是null。在Php這種弱類(lèi)型語(yǔ)言中這種語(yǔ)法一般是支持的,它會(huì)整體返回null,而在新版的Php7.4中這個(gè)語(yǔ)法卻會(huì)報(bào)告為錯(cuò)誤??磥?lái)Php也在一點(diǎn)點(diǎn)規(guī)范語(yǔ)言的特性,沒(méi)辦法,這個(gè)只能自己改代碼了。(雖然我目前選擇了使用舊版本的Php)

      由于Php7.4在也發(fā)布不久,估計(jì)還沒(méi)有大面積更新使用,各個(gè)應(yīng)用的開(kāi)發(fā)者可能也沒(méi)有針對(duì)Php7.4進(jìn)行過(guò)測(cè)試和兼容修改。也正是因此,在網(wǎng)上搜索這些信息時(shí),找不到什么有價(jià)值的建議,這篇文章除了記錄下被這個(gè)新特性坑了一下午之外,也算給其它人留一個(gè)解決類(lèi)似問(wèn)題的思路吧。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)