Configuring opcache.ini and www.conf files

Hello,
I have a website that uses React and Laravel. The opcache.ini and www.conf files are as follows:

[opcache]
; Core Activation
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=0

; Memory Optimization (Tuned for React/Next.js)
opcache.memory_consumption=256            ; Increased for React's larger files
opcache.interned_strings_buffer=20        ; Helps with React component names
opcache.preferred_memory_model="huge_page"

; File Caching (Optimized for JS-heavy apps)
opcache.max_accelerated_files=40000       ; React apps have many files
opcache.file_cache="/tmp/opcache_nextjs"
opcache.file_cache_consistency_checks=1
opcache.file_cache_only=0

; Code Validation (Next.js specific)
opcache.revalidate_freq=0                 ; Immediate invalidation for dev
opcache.validate_timestamps=1             ; Critical for React HMR
opcache.validate_permission=1
opcache.validate_root=1

; React/Next.js Specific Optimizations
opcache.save_comments=1                   ; Preserve React prop types
opcache.load_comments=1                   ; Needed for JSX transforms
opcache.optimization_level=0x7FFFBFFF
opcache.opt_debug_level=0

; JIT Configuration (For React SSR)
opcache.jit_buffer_size=128M              ; Larger for React rendering
opcache.jit=1235                          ; Tracing JIT for component trees
opcache.jit_debug=0

; Performance Tweaks for V8/Node interaction
opcache.huge_code_pages=1
opcache.fast_shutdown=1
opcache.force_restart_timeout=300
opcache.consistency_checks=0

; Error Handling
opcache.error_log="/var/log/php_opcache_nextjs.log"
opcache.log_verbosity_level=1

; Security Hardening
opcache.protect_memory=1
opcache.restrict_api="/var/www"
opcache.mmap_base=0x20000000


; React Hot Module Replacement Support
opcache.file_update_protection=0          ; Faster HMR updates
opcache.use_cwd=1                         ; Better for monorepos
opcache.enable_file_override=1            ; For dynamic component loading

And:

[www]
user = www-data
group = www-data
listen = 9000

pm = dynamic
pm.max_children = 80                      ; Increased for SSR workloads
pm.start_servers = 20
pm.min_spare_servers = 15
pm.max_spare_servers = 30
pm.process_idle_timeout = 60s             ; Longer for React hydration
pm.max_requests = 0                       ; Disable recycling for SSR stability

; React-Specific PHP Settings
php_admin_value[memory_limit] = 512M      ; React SSR needs more memory
php_admin_value[max_execution_time] = 180 ; Longer for SSR
php_admin_value[realpath_cache_size] = 16M
php_admin_value[realpath_cache_ttl] = 3600

; Output Buffering
php_admin_value[output_buffering] = 16384 ; Optimized for React stream
php_admin_value[implicit_flush] = 1       ; Better for hydration

My server has 4 CPU cores and 8 GB of RAM. I have two questions:

1- Are the above parameters appropriate?

2- How many visitors can visit my website?

Thank you.

Opcache is used by PHP to cache PHP code. It does nothing whatsoever with NextJS or React code. So you can put anything you like in those settings, it wont affect performance of NextJS or React.

As to how many users your site can handle you could best check with a benchmark tool like Apache Bench (ab).

1 Like

Hello,
Thank you so much for your reply.
Can you change my settings for a server with 4 CPU cores and 8 GB of RAM? How do you change the above settings if it is your own server?

No idea. Completely depends on the application. I would start with the defaults and see if anything needs tweaking. Generally I find that out of the box php is pretty well tuned.

1 Like