Jump to content

Prestashop 1.6 opcache settings


seowebmaster

Recommended Posts

Hello,

I am trying to set the cache from server-side, in order to speed up my shops.

Since everybody does not recommend the default ones (Memcached, APC, XCache), I am going to add opcache. I've searched for opcache settings for long time, but I haven't managed to find the best working settings. Does anybody have them?

Here are my data:

  • Server: Linux, 
  • PHP  7.0.33 (FPM served by Apache)
  • PrestaShop-Version 1.6.1.*

 

Link to comment
Share on other sites

  • 2 months later...

I use this (PHP 7.1.33 FPM)

[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 100000 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=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=....(add here the absolute path to your doc-root)/.opcache

; 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

Link to comment
Share on other sites

@seowebmasterTake a look into this pinned topic here, opcache settings are as well described there:

Simply add the lines mentioned there with vim or nano to the file /etc/php/7.0/mods-available/opcache.ini. You can also activate/configure opcache settings in your php.ini ( /etc/php/7.0/apache2/php.ini). It depends on your server configuration !! After this is done, reload the apache (service apache2 reload)

@Claudiocool your suggested settings are standard and are all commented, this means: not in effect. In Linux for to have a line activated you need to remove the ; in front of the line to activate it.

The only line you have activated on the file your transcribed here, and with no real performance setting (you are not using opcache, as the value is set to 1, but line is disabled), is:

22 hours ago, Claudiocool said:

opcache.file_cache=....(add here the absolute path to your doc-root)/.opcache

Link to comment
Share on other sites

  • 1 year later...

Hello, sorry to reopen an old post.
I have discovered that on PS 1.7 opcache interferes with the updates of prestashop modules.
The effect is that the notification on how many modules need to be updated won't change after you have performed the update and refreshed the modules page. You see always the same "updates available" notification although you will notice that the module files have actually been updated on filesystem.

I think opcache prevents the new updated files to recompile. Like it cannot detect the files have been changed.

I tried to tweak the opcache settings without any good.

The only way to solve the problem for me was to set up a php.ini that completely disables opcache before performing the updates, then restarting apache, then performing updates, then switching the old settings with opcache back in place.

 

I don't know well this opcache, but I believe I had the default settings at the beginning, and they were very wrong.

The system did even "confuse" things between two similar installations of prestashop on the same server, saving on the wrong DB. Horrible.

So be aware - if you get strange "persistent caching" problems, make a copy of your php.ini then try turning opcache off.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...