今天在研究WORKERMAN的GatewayWorker应用时,启动bat监听脚本时提示错误:
Fri Feb 26 21:03:20 2021 (3560): Fatal Error Base address marks unusable memory region. Please setup opcache.file_cache and opcache.file_cache_fallback directives for more convenient Opcache usage
以上翻译为:
致命错误基址标记内存区域不可用。请设置opcache.file_cache缓存以及opcache.file_cache_fallback缓存回退指令,以更方便地使用Opcache。
解决办法:
打开PHP.ini文件有以下内容(我的PHP版本是7.3.26):
; Mapping base of shared memory segments (for Windows only). All the PHP ; processes have to map shared memory into the same address space. This ; directive allows to manually fix the "Unable to reattach to base address" ; errors. ;opcache.mmap_base=
以上内容意思为:
映射共享内存段的基(仅适用于Windows)。所有的PHP进程必须将共享内存映射到同一地址空间。
在Windows平台上使用PHP并启用opcache时,可能会偶尔遇到Base address marks unusable memory region.
所以我们做如下修改,启用opcache.mmap_base,并将值修改为 0x20000000
opcache.mmap_base=0x20000000
重启Apache即可解决问题。