-
Star
(146)
You must be signed in to star a gist -
Fork
(40)
You must be signed in to fork a gist
-
-
Save rohankhudedev/1a9c0a3c7fb375f295f9fc11aeb116fe to your computer and use it in GitHub Desktop.
[opcache] | |
; Determines if Zend OPCache is enabled | |
opcache.enable=1 | |
; Determines if Zend OPCache is enabled for the CLI version of PHP | |
;opcache.enable_cli=1 | |
; The OPcache shared memory storage size. | |
opcache.memory_consumption=512 | |
; The amount of memory for interned strings in Mbytes. | |
opcache.interned_strings_buffer=64 | |
; The maximum number of keys (scripts) in the OPcache hash table. | |
; Only numbers between 200 and 1000000 are allowed. | |
;If you have multiple PHP sites on the server then consider the value 130986 | |
; for magento 2, keep 65406 | |
opcache.max_accelerated_files=50000 | |
; The maximum percentage of "wasted" memory until a restart is scheduled. | |
opcache.max_wasted_percentage=15 | |
; 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. | |
; For Development / testing, keep 1 | |
; For performance / production, keep 0 | |
opcache.validate_timestamps=0 | |
;opcache.revalidate_freq How often in seconds should the code | |
;cache expire and check if your code has changed. 0 means it | |
;checks your PHP code every single request IF YOU HAVE | |
;opcache.validate_timestamps ENABLED. opcache.validate_timestamps | |
;should not be enabled by default, as long as it's disabled then any value for opcache. | |
;revalidate_freq will basically be ignored. You should really only ever enable | |
;this during development, you don't really want to enable this setting for a production application. | |
opcache.revalidate_freq=0 | |
; 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=1 | |
; If enabled, a fast shutdown sequence is used for the accelerated code | |
; Depending on the used Memory Manager this may cause some incompatibilities. | |
opcache.fast_shutdown=1 | |
; Allow file existence override (file_exists, etc.) performance feature. | |
;opcache.enable_file_override=0 | |
; 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. The file format is to add each filename | |
; to a new line. The filename may be a full path or just a file prefix | |
; (i.e., /var/www/x blacklists all the files and directories in /var/www | |
; that start with 'x'). Line starting with a ; are ignored (comments). | |
;opcache.blacklist_filename= | |
; 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= | |
; 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 | |
; Allows calling OPcache API functions only from PHP scripts which path is | |
; started from specified string. The default "" means no restriction | |
;opcache.restrict_api= | |
; 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=0x20000000 | |
; Enables and sets the second level cache directory. | |
; It should improve performance when SHM memory is full, at server restart or | |
; SHM reset. The default "" disables file based caching. | |
;opcache.file_cache= | |
; Enables or disables opcode caching in shared memory. | |
;opcache.file_cache_only=0 | |
; Enables or disables checksum validation when script loaded from file cache. | |
;opcache.file_cache_consistency_checks=1 | |
; Implies opcache.file_cache_only=1 for a certain process that failed to | |
; reattach to the shared memory (for Windows only). Explicitly enabled file | |
; cache is required. | |
opcache.file_cache_fallback=1 | |
; Enables or disables copying of PHP code (text segment) into HUGE PAGES. | |
; This should improve performance, but requires appropriate OS configuration. | |
;opcache.huge_code_pages=1 | |
; Validate cached file permissions. | |
; opcache.validate_permission=0 | |
; Prevent name collisions in chroot'ed environment. | |
; opcache.validate_root=0 |
Thanks guys!
Here in a script:
#!/bin/sh
#source: https://gist.github.com/rohankhudedev/1a9c0a3c7fb375f295f9fc11aeb116f
#TODO: change the php_file_path and run
php_file_path=/etc/php/8.2/cli/php.ini
n2 sed -i '/opcache.enable/c opcache.enable=1' $php_file_path
n2 sed -i '/opcache.memory_consumption/c opcache.memory_consumption=512' $php_file_path
n2 sed -i '/opcache.interned_strings_buffer/c opcache.interned_strings_buffer=64' $php_file_path
n2 sed -i '/opcache.max_accelerated_files/c opcache.max_accelerated_files=5000' $php_file_path
n2 sed -i '/opcache.max_wasted_percentage/c opcache.max_wasted_percentage=15' $php_file_path
n2 sed -i '/opcache.validate_timestamps/c opcache.validate_timestamps=0' $php_file_path
n2 sed -i '/opcache.revalidate_freq/c opcache.revalidate_freq=0' $php_file_path
n2 sed -i '/opcache.save_comments/c opcache.save_comments=1' $php_file_path
n2 sed -i '/opcache.fast_shutdown/c opcache.fast_shutdown=1' $php_file_path
n2 sed -i '/opcache.mmap_base/c opcache.mmap_base=0x20000000' $php_file_path
n2 sed -i '/opcache.file_cache_fallback/c opcache.file_cache_fallback=1' $php_file_path
systemctl restart apache2
Great config, thanks. One warning is that on a Wordpresss site or other systems with auto-updates, the opcache.validate_timestamps needs to be 1 (default) or else a third party plugin update with significant code edits will need a manual PHP service restart, showing 500 error until restarted. Set opcache.validate_timestamps=1 and a opcache.revalidate_freq=60 for a max of one minute downtime but picking up some opcache gains
Great config, @rohankhudedev! I have a quick question: for production environments, wouldn't it be better to disable opcache.save_comments=0?
If the application doesn't rely on PHPDoc annotations for functionality, removing them from the optimized code could help reduce memory usage for cached scripts. Thanks!
np
Thanks for sharing!