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


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.

假设我配置错误了某些内容,或者更新中出现了某些内容。任何帮助都将是绝对美妙的,非常感谢。

我需要添加/更改我的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

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

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

opcache.file_cache="C:'Windows'temp'php_opcache"
opcache.file_cache_fallback=1

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