2017-07-31 85 views
1

我們正在努力解決一個奇怪的問題。我們在服務器上看到「損壞」opcache。任何想法如何解決?

時不時地,我們做了部署到我們的服務器,一臺服務器將開始流進的錯誤線沿線的日誌,

require_once(): Failed opening required '/var/www/CrrrectPath/Abstract.php' 
(include_path='/var/www/') in /var/www/CorrectPath/Object.php on line 2 

問題並不總是include()。有時候方法名會以同樣的方式被破壞(一個字符被另一個字符替換)。

在生產中調試了受影響的服務器後,我可以看到這些文件本身非常好。我的直覺是這些文件的opcache以某種方式被破壞。

我們啓用了「validate_timestamps」,所以我認爲文件在rsync中間被重新讀取(我們從一個文件夾同步到「live」文件夾作爲我們部署的一部分)是合理的。然後,我們禁用了「validate_timestamps」,並且在代碼完全rsynced時正在執行opcache_reset()。這個問題確實發生得不是很頻繁,但我們仍然在看到事件發生。

有沒有其他人遇到過這個問題?任何解決方案建議(除徹底改變我們的部署方式外)?

有關信息,

$ php -v 
PHP 7.0.21-1~ubuntu14.04.1+deb.sury.org+1 (cli) (built: Jul 6 2017 09:38:10) (NTS) 
Copyright (c) 1997-2017 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies 
    with Zend OPcache v7.0.21-1~ubuntu14.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies 

感謝

+0

也許它是隨機的,但''失敗打開必需'/ var/www/CrrrectPath/Abstract.php' - 它是'typo'嗎? 'CrrrectPath'的第二個字母是'r'而不是'o'? –

+0

@AntonisTsimourtos這不是一個錯字。這是真正的問題,我們得到的錯誤。因此,我相信該文件的opcache被損壞或什麼的。 –

回答

0

看來,這個問題是/是類似於下面的PHP錯誤,

https://bugs.php.net/bug.php?id=71135

我們重新啓用「 validate_timestamps「和而不是在做opcache_reset()的部署。希望這能解決問題。

相關問題