Created on 2016-Feb-05
Updated on 2017-Aug-31
If you used custombuild to install opcache, then you will need to set the opcache settings there.
cd /usr/local/directadmin/custombuild vi options.conf
Change opcache=no to opcache=yes
opcache=yes
Set your opache settings here:
vi custom/opcache/opcache.ini
Here are my settings (This is for a fast server, with 128GB RAM):
; 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=16 ; The maximum number of keys (scripts) in the OPcache hash table. ; Only numbers between 200 and 100000 are allowed. opcache.max_accelerated_files=60000 ; The maximum percentage of "wasted" memory until a restart is scheduled. opcache.max_wasted_percentage=10 ; 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 opcache.revalidate_freq=60 ; 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 opcache.validate_permission=1 ; If disabled, all PHPDoc comments are dropped from the code to reduce the ; size of the optimized code. opcache.save_comments=1 ; 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=1 ; 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. 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=/usr/local/lib/php.conf.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/php-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
Now copy over the above file so that DirectAdmin can use it. NOTE: at the time of this writing, the /custom directory isn't applied for opcache.ini, hence we just store it here so we can overwrite it each time instead of rewriting it manually
Now we rebuild opcache
./build opcache
Verify opcache is installed
php -v
See what configuration files are being used
cd /usr/local/directadmin/custombuild/ ./build used_configs ### Also check: cd /usr/local/lib/php.ini ### default mod_php cd /usr/local/lib/php.conf.d/ /usr/local/php71/lib/php.ini ### default php-fpm71 cd /usr/local/php71/lib/php.conf.d /usr/local/php70/lib/php.ini ### default php-fpm70 cd /usr/local/php70/lib/php.conf.d cd /usr/local/php56/lib/php.ini ### default php-fpm56 cd /usr/local/php56/lib/php.conf.d ### Any files listed under /usr/local/*/lib/php.conf.d will be loaded for your used PHP version.