我已經在新的主機(虛擬雲)上設置了我的網站,但是我正在查看opcache,並且沒有將用於a minutes or so
的scripts
從緩存中刪除。Opcache清除速度太快
那麼有沒有辦法阻止它?或者這是一種正常的行爲?
非常感謝。
我已經在新的主機(虛擬雲)上設置了我的網站,但是我正在查看opcache,並且沒有將用於a minutes or so
的scripts
從緩存中刪除。Opcache清除速度太快
那麼有沒有辦法阻止它?或者這是一種正常的行爲?
非常感謝。
聽起來像你需要在php.ini中定義validate_timestamps=0
。注意這一點雖然 - 如果您上傳任何更改到您的PHP文件,您將需要重新啓動Apache(如果您使用mod_php5)或PHP5-FPM,或手動清除opcache。
有關如何清除opcache手動你基本上要創建一個PHP文件,opcache_reset()
並運行它的細節,但是這必須是在同一個SAPI作爲你的其他文件 - 即由PHP5-FPM運行,如果是什麼是爲您的其他文件提供服務。 http://ihaveabackup.net/2013/10/19/invalidating-the-opcache-in-php-5-5/
實際上有這樣的配置。 opcache.revalidate_freq=2
,默認值是2秒,opcache會嘗試每2秒檢查一次時間戳,如果文件改變了,它會重新生效。 您可以更改值以符合您的需求,或者您可以使用此配置文件opcache.validate_timestamps=0
關閉時間戳檢查,但在這種情況下,您每次將代碼部署到生產時都必須重新啓動php-fpm(如果您使用的是php-fpm )和Web服務器
opcache.revalidate_freq=2
或任何整數值
opcache.validate_timestamps=1
或opcache.validate_timestamps=0
By使用'opcache.validate_timestamps'到'0',選項'opcache.revalidate_freq'將被忽略。 –
是什麼在你的php.ini的opcache設置? – Clay
是什麼「,‘opcache.max_accelerated_files’的價值呢?如果你設置‘opcache.validate_timestamps = 0’? – Clay
opcache.max_accelerated_files = 2000 –