Zend OPcache 问题(Windows Server 2012 + IIS + Plesk + PHP 7)

Zend OPcache Issue (Windows Server 2012 + IIS + Plesk + PHP 7)

我刚刚升级到 PHP 7,发现它又好又快,但自从我升级(代码完全未更改)以来,我一直遇到间歇性的内部服务器错误 (500)。我正在记录错误,正常日志中什么也没有出现,但在事件查看器中,我有成千上万的错误:

The description for Event ID 487 from source Zend OPcache cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

Base address marks unusable memory region. Please setup opcache.file_cache and opcache.file_cache_callback directives for more convenient Opcache usage
Attempt to access invalid address.

我假设我配置有误,或者更新后出现了问题。任何帮助都将非常棒,非常感谢。

还有https://bugs.php.net/bug.php?id=72645

可以通过为其他版本的 PHP(5.4、5.5、5.6)禁用 opcache 或为每个 IIS 站点切换专用池来解决这个问题。

我需要添加/更改我的 php.ini 以包含以下内容。我在一个关于 "Moodle"... 的网站上找到了它。

我希望它对那里的一些人有用!

opcache.enable=1
zend_extension="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP70\ext\php_opcache.dll"

opcache.memory_consumption = 128
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60

; Required for Moodle
opcache.use_cwd = 1
opcache.validate_timestamps = 1
opcache.save_comments = 1
opcache.enable_file_override = 0
opcache.revalidate_path = 1 ; May fix problems with include paths
opcache.mmap_base = 0x20000000 ; (Windows only) fix OPcache crashes with event id 487
opcache.file_cache="C:\Windows\temp\php_opcache"
opcache.file_cache_fallback=1

用于参考和设置 opcache :https://www.php.net/manual/en/opcache.installation.php