From 472610bed8e2f37c68b48513ccd5e27631158d7d Mon Sep 17 00:00:00 2001 From: Jose Carlos Date: Fri, 20 Feb 2026 23:05:01 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20opcache=20config=20=E2=80=94=20remove=20?= =?UTF-8?q?dead=20directives,=20enable=20JIT=20on=20prod=20images?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove opcache.fast_shutdown (removed in PHP 7.2, no-op on 8.x) - Remove opcache.revalidate_freq (irrelevant when validate_timestamps=0) - Fix interned_strings_buffer: 8 -> 16 - Enable JIT (tracing mode) on prod images - Disable JIT on dev images (Xdebug + JIT are incompatible) - Enable validate_timestamps on dev images (live reload during development) Source: https://www.php.net/manual/en/opcache.configuration.php --- 8.1/devfs/etc/php81/conf.d/00_opcache.ini | 17 ++++++++++------- 8.1/rootfs/etc/php81/conf.d/00_opcache.ini | 15 ++++++++++----- 8.2/devfs/etc/php82/conf.d/00_opcache.ini | 17 ++++++++++------- 8.2/rootfs/etc/php82/conf.d/00_opcache.ini | 15 ++++++++++----- 8.3/devfs/etc/php83/conf.d/00_opcache.ini | 17 ++++++++++------- 8.3/rootfs/etc/php83/conf.d/00_opcache.ini | 15 ++++++++++----- 6 files changed, 60 insertions(+), 36 deletions(-) diff --git a/8.1/devfs/etc/php81/conf.d/00_opcache.ini b/8.1/devfs/etc/php81/conf.d/00_opcache.ini index ba5b4e0..4a0b5a9 100644 --- a/8.1/devfs/etc/php81/conf.d/00_opcache.ini +++ b/8.1/devfs/etc/php81/conf.d/00_opcache.ini @@ -1,11 +1,14 @@ +; Source: https://www.php.net/manual/en/opcache.configuration.php zend_extension=opcache.so -opcache.memory_consumption=256 -opcache.interned_strings_buffer=8 -opcache.max_accelerated_files=10000 -opcache.revalidate_freq=2 -opcache.fast_shutdown=1 -opcache.enable_cli=1 opcache.enable=1 +opcache.enable_cli=1 +opcache.memory_consumption=256 +opcache.interned_strings_buffer=16 +opcache.max_accelerated_files=50000 opcache.validate_timestamps=1 -opcache.max_wasted_percentage=10 \ No newline at end of file +opcache.save_comments=1 +opcache.max_wasted_percentage=10 + +; JIT disabled — incompatible with Xdebug +opcache.jit=off diff --git a/8.1/rootfs/etc/php81/conf.d/00_opcache.ini b/8.1/rootfs/etc/php81/conf.d/00_opcache.ini index 51d4740..a54ed99 100644 --- a/8.1/rootfs/etc/php81/conf.d/00_opcache.ini +++ b/8.1/rootfs/etc/php81/conf.d/00_opcache.ini @@ -1,11 +1,16 @@ +; Source: https://www.php.net/manual/en/opcache.configuration.php zend_extension=opcache.so +opcache.enable=1 +opcache.enable_cli=1 opcache.memory_consumption=256 -opcache.interned_strings_buffer=8 +opcache.interned_strings_buffer=16 opcache.max_accelerated_files=50000 -opcache.revalidate_freq=60 -opcache.fast_shutdown=1 -opcache.enable_cli=1 -opcache.enable=1 opcache.validate_timestamps=0 +opcache.save_comments=1 opcache.max_wasted_percentage=10 + +; JIT — tracing mode, best for web workloads (PHP 8.x only) +; Disabled in dev images (incompatible with Xdebug) +opcache.jit=tracing +opcache.jit_buffer_size=64M diff --git a/8.2/devfs/etc/php82/conf.d/00_opcache.ini b/8.2/devfs/etc/php82/conf.d/00_opcache.ini index ba5b4e0..4a0b5a9 100644 --- a/8.2/devfs/etc/php82/conf.d/00_opcache.ini +++ b/8.2/devfs/etc/php82/conf.d/00_opcache.ini @@ -1,11 +1,14 @@ +; Source: https://www.php.net/manual/en/opcache.configuration.php zend_extension=opcache.so -opcache.memory_consumption=256 -opcache.interned_strings_buffer=8 -opcache.max_accelerated_files=10000 -opcache.revalidate_freq=2 -opcache.fast_shutdown=1 -opcache.enable_cli=1 opcache.enable=1 +opcache.enable_cli=1 +opcache.memory_consumption=256 +opcache.interned_strings_buffer=16 +opcache.max_accelerated_files=50000 opcache.validate_timestamps=1 -opcache.max_wasted_percentage=10 \ No newline at end of file +opcache.save_comments=1 +opcache.max_wasted_percentage=10 + +; JIT disabled — incompatible with Xdebug +opcache.jit=off diff --git a/8.2/rootfs/etc/php82/conf.d/00_opcache.ini b/8.2/rootfs/etc/php82/conf.d/00_opcache.ini index 51d4740..a54ed99 100644 --- a/8.2/rootfs/etc/php82/conf.d/00_opcache.ini +++ b/8.2/rootfs/etc/php82/conf.d/00_opcache.ini @@ -1,11 +1,16 @@ +; Source: https://www.php.net/manual/en/opcache.configuration.php zend_extension=opcache.so +opcache.enable=1 +opcache.enable_cli=1 opcache.memory_consumption=256 -opcache.interned_strings_buffer=8 +opcache.interned_strings_buffer=16 opcache.max_accelerated_files=50000 -opcache.revalidate_freq=60 -opcache.fast_shutdown=1 -opcache.enable_cli=1 -opcache.enable=1 opcache.validate_timestamps=0 +opcache.save_comments=1 opcache.max_wasted_percentage=10 + +; JIT — tracing mode, best for web workloads (PHP 8.x only) +; Disabled in dev images (incompatible with Xdebug) +opcache.jit=tracing +opcache.jit_buffer_size=64M diff --git a/8.3/devfs/etc/php83/conf.d/00_opcache.ini b/8.3/devfs/etc/php83/conf.d/00_opcache.ini index ba5b4e0..4a0b5a9 100644 --- a/8.3/devfs/etc/php83/conf.d/00_opcache.ini +++ b/8.3/devfs/etc/php83/conf.d/00_opcache.ini @@ -1,11 +1,14 @@ +; Source: https://www.php.net/manual/en/opcache.configuration.php zend_extension=opcache.so -opcache.memory_consumption=256 -opcache.interned_strings_buffer=8 -opcache.max_accelerated_files=10000 -opcache.revalidate_freq=2 -opcache.fast_shutdown=1 -opcache.enable_cli=1 opcache.enable=1 +opcache.enable_cli=1 +opcache.memory_consumption=256 +opcache.interned_strings_buffer=16 +opcache.max_accelerated_files=50000 opcache.validate_timestamps=1 -opcache.max_wasted_percentage=10 \ No newline at end of file +opcache.save_comments=1 +opcache.max_wasted_percentage=10 + +; JIT disabled — incompatible with Xdebug +opcache.jit=off diff --git a/8.3/rootfs/etc/php83/conf.d/00_opcache.ini b/8.3/rootfs/etc/php83/conf.d/00_opcache.ini index 51d4740..a54ed99 100644 --- a/8.3/rootfs/etc/php83/conf.d/00_opcache.ini +++ b/8.3/rootfs/etc/php83/conf.d/00_opcache.ini @@ -1,11 +1,16 @@ +; Source: https://www.php.net/manual/en/opcache.configuration.php zend_extension=opcache.so +opcache.enable=1 +opcache.enable_cli=1 opcache.memory_consumption=256 -opcache.interned_strings_buffer=8 +opcache.interned_strings_buffer=16 opcache.max_accelerated_files=50000 -opcache.revalidate_freq=60 -opcache.fast_shutdown=1 -opcache.enable_cli=1 -opcache.enable=1 opcache.validate_timestamps=0 +opcache.save_comments=1 opcache.max_wasted_percentage=10 + +; JIT — tracing mode, best for web workloads (PHP 8.x only) +; Disabled in dev images (incompatible with Xdebug) +opcache.jit=tracing +opcache.jit_buffer_size=64M