最近在維護一個客戶的PHP系統
建置及虛擬空間都是別人的,所以很多設定都是不明確的
因此程式碼調整後更新上去,發現似乎沒有作用
花了不少時間確認自己的寫法,最後確認應該不是自己的問題
才想到會不會是 cache 造成?
寫了幾隻小程式,新寫的程式一丟上顯示符合預期
再改再丟上去更新後,顯示還是舊的版本,Shit 真的猜中了
再用個phpinfo() 來看看設定
嗯.....出現了以下錯誤
Warning:phpinfo() has been disabled
很好,沒有php 沒有啟用 phpinfo ,多半管這麼多的,一定設定了很多怪東東
上網查了一下php 的 cache 解決方案
最多人在提的就是 APC 及OPcache
先來試試APC,查了一下 除了設定參數外,可以用以下函式來清除快取,這種最好測試了
apc_clear_cache();
執行後出現了 undefined function ...所以看來不是啟用APC
再來換OPcache,查了一下,一樣他有函式就可以清除快取,執行如下:
opcache_reset();
用了,哈~真的就是它,程式總算可以正常了
相關參考連結:
http://blog.roachking.net/blog/2012/11/30/apc-for-faster-php/
https://www.php.net/manual/en/function.opcache-reset.php