国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

服務器代碼文件緩存疑難

Ilikewhite / 1945人閱讀

摘要:我們以為是服務器有緩存,就嘗試修改里面的代碼,和里面的代碼,但是發現并沒有用,程序依然運行的是的代碼。建議大家在使用的時候,發布完新代碼,記得調用函數來清除緩存。該函數將重置整個字節碼緩存。

故事背景

公司服務器用的是Nginx,比如A項目的root目錄是a,a目錄軟鏈到a1。
發布新版本代碼后,會生成和a1同級的a2a1a2分別代表不通的發布版本,只需要將a目錄的軟鏈指到a2即可。
但是我們發現一個很奇怪的問題:
在訪問A項目的時候,運行的還是a1的代碼運行結果,理論上此時應該執行的是a2代碼才對。
我們以為是Nginx服務器有緩存,就嘗試修改a1里面的代碼,和a2里面的代碼,但是發現并沒有用,程序依然運行的是a1的代碼。
我們甚至把a1目錄刪了,報錯內容都還是a1目錄里的某部分代碼。

解決方案

經過多方面的嘗試,我們最終將問題定位到OPcache上,在關閉了Opcache后,我們發布了a3,運行結果顯示的也是a3的程序結果,證明我們的推斷是正確的。

總結

nginx應該是把目錄a作為路徑傳遞到了php-fpm中
OPcache也是以路徑作為緩存代碼的Key
所以說雖然軟連接指向的目錄改變了,但是OPcache識別到的目錄是一樣的,所以使用了直接緩存的文件。
建議大家在使用OPcache的時候,發布完新代碼,記得調用函數opcache_reset()來清除緩存。該函數將重置整個字節碼緩存。 在調用opcache_reset()之后,所有的腳本將會重新載入并且在下次被點擊的時候重新解析。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30403.html

相關文章

  • php疑難雜癥代碼收集(不斷增長中)

    摘要:使用開發已經很久了,但是最近看過一些代碼,卻發現自己竟然不知道為什么運行結果會是那個樣子,特收集記錄之,代碼運行結果大家請自行嘗試,我會不斷更新此文,弄明白為什么會是那個結果后,會更新原因,也希望看到的朋友能分享出來。 使用PHP開發已經很久了,但是最近看過一些代碼,卻發現自己竟然不知道為什么運行結果會是那個樣子,特收集記錄之,代碼運行結果大家請自行嘗試,我會不斷更新此文,弄明白為什么...

    enda 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<