php settings for virtual server?

I'm trying to improve the performance of nextcloud since upgrading a virtual servers nextcloud instsance to mysql. When logging in as administrator I am getting the following warning under 'settings/overview':

The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini: opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1

I have added these settings to the php.ini on the path given in the virtualmin web php configuration page for this virtual server: /home/domain/etc/php7.2/php.ini but the warning remains. I have also added these to the main php.ini file at /etc/php.ini and /home/domain/public_html/nextcloud/.user.ini none of which seem to make any difference. Where can I find the correct php.ini file to insert these parameters?

Thanks.

Status: 
Closed (fixed)

Comments

Howdy -- thanks for contacting us!

What is the PHP Execution Mode that this domain is using? You can determine that in Server Configuration -> Website Options.

Second, what PHP Version is it using? You can see that in Server Configuration -> PHP Versions.

It shows this option as selected: FCGId (run as virtual server owner).

Under 'server configuration', 'php options' it lists 'default html directory' as 7.2.24, there is also a blank line under that with 5.4.16 with nothing next to it. Under 'services', 'php 7.2 configuration' if shows the path /home/domain/etc/php7.2/php.ini, I have updated this files and it does not change the message from within nextcloud.

Note that if you edit php.ini directly, changes may not take effect until a reboot or when the PHP FPM server for the domain is restarted.

I rebooted the server after each change and it made no difference.

Are you sure you added the options to the correct section of the php.ini file?

I added all these opcache settings to the end of the php.ini files, there are no other references to 'opcache' anywhere in the existing php.ini files.

It seems the correct file to add the opcache is the path '/etc/opt/rh/rh-php72/php.d/10-opcache.ini' and not the php.ini file. Adding the opcache settings into this files has removed the warning from within the nextcloud admin under settings/overview.

Surprising - can you attach that opcache.ini file to this ticket?

Here are the contents on the current 10-opcache.ini file:

; Enable Zend OPcache extension module
zend_extension=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=128

; The amount of memory for interned strings in Mbytes.
opcache.interned_strings_buffer=8

; The maximum number of keys (scripts) in the OPcache hash table.
; Only numbers between 200 and 1000000 are allowed.
opcache.max_accelerated_files=10000

; 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=1

; 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=1

; 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=0

; 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.
opcache.blacklist_filename=/etc/opt/rh/rh-php72/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=

; 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=

; 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.
; RPM note : file cache directory must be owned by process owner
;   for mod_php, see /etc/opt/rh/rh-php72/httpd/conf.d/php.conf
;   for php-fpm, see /etc/opt/rh/rh-php72/php-fpm.d/*conf
;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

; Validate cached file permissions.
; Leads OPcache to check file readability on each access to cached file.
; This directive should be enabled in shared hosting environment, when few
; users (PHP-FPM pools) reuse the common OPcache shared memory.
;opcache.validate_permission=0

; Prevent name collisions in chroot'ed environment.
; This directive prevents file name collisions in different "chroot"
; environments. It should be enabled for sites that may serve requests in
; different "chroot" environments.
;opcache.validate_root=0

; 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=0

opcache.save_comments=1

Hmm ... it's not clear why the settings would work in that file, but not in the regular php.ini

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.