Warning: the PHP OPcache module is not loaded

Since my Upgrade from nc 13 to nc 14 I get a curious message: the PHP OPcache module is not loaded

  1. OPcache is on
  2. For nc 13 was everything ok

Nextcloud version: 14.0.0
Operating system and version: Ubuntu 16.04.5
PHP version: 7.1.21

This are my settings for OPcache:

Summary

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

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

; 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

The very first setting is part of the problem. All of the lines starting with ; means a comment, you need to uncomment those, for a start.

Ups. That is embarrassing. I’ve already done that once?!

Anyway. I changed that now with the recommended settings:

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

After my restart of PHP I’ve got the same result. There is a warning…

That should actually work:

Have a look at Unable to fix that "PHP OPcache not properly configured" warning!

Thanks, but I can’t see a solution for that problem. The warning is still there.

PHP

Version: 7.1.21
Memory Limit: 512 MB
Max Execution Time: 3600
Upload max size: 10 GB

Database

Type: mysql
Version: 5.7.23
Size: 125.8 MB

I sent you the link to check out the different locations the poster found OPcache settings in.

Did you restart apache after you made the changes to OPCache?

/etc/php/7.0/cli/php.ini
/etc/php/7.0/fpm/php.ini
/etc/php/7.0/mods-available/opcache.ini

Those are the locations he referred to. Maybe check all of them? And also make sure to restart apache service.

Which warning? The one about OPCache or the stuff you posted in the last reply?

Ok, I understand. Yes I did a restart of apache. I have installed the web panel Plesk. CGI, FastCGI and FPM is using here the same php.ini. But I will check this again via ssh after work.

I’ve meant the warning about OPcache.

I have the same problem. Before i update to V14 the OPCache works.
Since V14 i get the
The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation.

Try
php -i |grep .ini
Or something similar.
It should show all .ini files which are in use. One of them is correct place for opcache settings. There are many variations, so it’s hard to say which one you have to use.

The correct data in following path were already set:

/var/www/vhosts/system/<domain_name>/etc/php.ini

In following location I did it additionally:

/etc/php/7.0/cli/php.ini
/etc/php/7.0/fpm/php.ini

File exists:

/etc/php/7.0/mods-available/opcache.ini

After restart of apache I get still the same warning. Currently I have no more idea what to do…

I upgraded from Nextcloud 13.0.6 to 14.0.0 now. I also encountered this problem.
When I look at PHP Info, all items of OPcache guided from Nextcloud are enable.
Of course, there was no problem (not pointed out) at ver.13.0.6.

I suspected “opcache_get_status”.
“Opcache_get_status” was specified in the “disable_functions” item in PHP setting. Once I deleted it, I could pass the checklist on Nextcloud.

My envrironemnt: CentOS 7.5, PHP 7.1.21, Nginx 1.13.8.

2 Likes

Soemthin I saw last night whilst testing was that if only one of the values are not as NC wants it, it will give the whole error, not just the line that is the problem. For instance I forgot to enable the cli option, and it showed the error.

I used CentOS 7.5 with php 7.2 my opcache only needed to be set in /etc/php.d/opcache.ini

I could not solve the problems and changed back to version 13.0.6. That means the topic OPcache and the message “Password change is disabled because the master key is disabled”.
I will wait for the next update… :confused:

I am having the same issue as fume after a clean install and using the recommended PHP settings (Centos 7.5, PHP 7.2.10).

Edit: Many thanks zoo3. Opcache_get_status was in disable_functions in Plesk (under PHP settings). I deleted it and the error disappeared.

4 Likes

Thank you! This was the solution.

It is indeed a solution. Also I found an easy option in Plesk to removed it, but my question is: isn’t it a security problem? It doesn’t seem to be the correct solution because I have other websites that have it disabled and I get no Opcache erros in Nextcloud…

Better solve your problem. You can open a new thread.

First install some packages:

APCu is a data cache, and it is available in most Linux distributions. On Red Hat/CentOS/Fedora systems install php-pecl-apcu . On Debian/Ubuntu/Mint systems install php-apcu .

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html?highlight=opcache