Skip to content

Instantly share code, notes, and snippets.

@tegansnyder
Last active September 2, 2022 16:24
Show Gist options
  • Save tegansnyder/608185c9aeb11c10d8ae to your computer and use it in GitHub Desktop.
Save tegansnyder/608185c9aeb11c10d8ae to your computer and use it in GitHub Desktop.
OpCache settings for Magento on PHP 5.5.14. Store this file as /etc/php.d/opcache.ini
; Enable Zend OPcache extension module
zend_extension=opcache.so
; Determines if Zend OPCache is enabled
opcache.enable=1
; Determines if Zend OPCache is enabled for the CLI version of PHP
;opcache.enable_cli=0
; The OPcache shared memory storage size.
opcache.memory_consumption=256
; The amount of memory for interned strings in Mbytes.
opcache.interned_strings_buffer=12
; The maximum number of keys (scripts) in the OPcache hash table.
; Only numbers between 200 and 100000 are allowed.
opcache.max_accelerated_files=16000
; The maximum percentage of "wasted" memory until a restart is scheduled.
;opcache.max_wasted_percentage=5
; When this directive is enabled, the OPcache appends the current working
; directory to the script key, thus eliminating possible collisions between
; files with the same name (basename). Disabling the directive improves
; performance, but may break existing applications.
;opcache.use_cwd=1
; When disabled, you must reset the OPcache manually or restart the
; webserver for changes to the filesystem to take effect.
opcache.validate_timestamps=0
; How often (in seconds) to check file timestamps for changes to the shared
; memory storage allocation. ("1" means validate once per second, but only
; once per request. "0" means always validate)
;opcache.revalidate_freq=2
; Enables or disables file search in include_path optimization
;opcache.revalidate_path=0
; If disabled, all PHPDoc comments are dropped from the code to reduce the
;size of the optimized code.
opcache.save_comments=0
; If disabled, PHPDoc comments are not loaded from SHM, so "Doc Comments"
; may be always stored (save_comments=1), but not loaded by applications
; that don't need them anyway.
opcache.load_comments=0
; If enabled, a fast shutdown sequence is used for the accelerated code
opcache.fast_shutdown=1
; Allow file existence override (file_exists, etc.) performance feature.
opcache.enable_file_override=1
; A bitmask, where each bit enables or disables the appropriate OPcache
; passes
;opcache.optimization_level=0xffffffff
;opcache.inherited_hack=1
;opcache.dups_fix=0
; The location of the OPcache blacklist file (wildcards allowed).
; Each OPcache blacklist file is a text file that holds the names of files
; that should not be accelerated.
opcache.blacklist_filename=/etc/php.d/opcache*.blacklist
; Allows exclusion of large files from being cached. By default all files
; are cached.
;opcache.max_file_size=0
; Check the cache checksum each N requests.
; The default value of "0" means that the checks are disabled.
;opcache.consistency_checks=0
; How long to wait (in seconds) for a scheduled restart to begin if the cache
; is not being accessed.
;opcache.force_restart_timeout=180
; OPcache error_log file name. Empty string assumes "stderr".
opcache.error_log=/var/log/php5/php5-opcache.error.log
; All OPcache errors go to the Web server log.
; By default, only fatal errors (level 0) or errors (level 1) are logged.
; You can also enable warnings (level 2), info messages (level 3) or
; debug messages (level 4).
opcache.log_verbosity_level=1
; Preferred Shared Memory back-end. Leave empty and let the system decide.
;opcache.preferred_memory_model=
; Protect the shared memory from unexpected writing during script execution.
; Useful for internal debugging only.
;opcache.protect_memory=0
@chbibo
Copy link

chbibo commented Jan 8, 2015

Thanks Tegan.
Is it applied to all production env?

@tegansnyder
Copy link
Author

@chbibo yes production

@studio2f
Copy link

First off-- thank you for this! Second, OpCache seems to be caching Magento API calls. Any idea how to blacklist or exclude any calls to the API?

@studio2f
Copy link

If it helps anyone else-- I blacklisted /app/code/core/Mage/Api/* and the API works.Thanks again.

@tegansnyder
Copy link
Author

Some more good knowledge being dropped here:
http://jpauli.github.io/2015/03/05/opcache.html

@PieterCappelle
Copy link

Hi @tegansnyder. This slide was yesterday on a Magento Imagine session given by an Magento employee. You should make some improvements I think.

opcache.memory_consumption=768
opcache.max_accelerated_files=60000

https://img42.com/xo0Ja

What do you think about it?

@philicious
Copy link

@studio2f the correct blacklist path for the API is DOCUMENT_ROOT/app/code/core/Mage/Api/* or it wont work. e.g. /var/www/htdocs/app/code/core/Mage/Api/*

@brandontamm
Copy link

I noticed you guys are recommending not to cache Magento API calls - can someone help me out with understanding why we make this recommendation? I have a Magento installation and I just setup OpCache. My Magento app connects via API with Salesforce and I am looking to cache anything I can, but I didn't understand why we wouldn't want to cache API? Easy now - I'm a n00b ;)

@Winfle
Copy link

Winfle commented Oct 20, 2016

@brandontamm maybe they mean caching of Api-call "response". Its possible during the Soap-calls, when it gets the same response with the same input-parameters. You can check WSDL-cache and disable, but I think that its not "OPcache" cache. (I could be wrong)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment