Get the most out of your Centmin Mod LEMP stack
Become a Member

Disable Annoying Caching on New Install

Discussion in 'Install & Upgrades or Pre-Install Questions' started by value, Sep 6, 2020.

  1. value

    value New Member

    2
    0
    1
    Sep 6, 2020
    Ratings:
    +0
    Local Time:
    1:52 PM
    1.19.2
    10.3.24
    Please fill in any relevant information that applies to you:
    • CentOS Version: CentOS 7.8
    • Centmin Mod Version Installed: 123.09beta01
    • Nginx Version Installed: 1.19.2
    • PHP Version Installed: 7.3.21
    • MariaDB MySQL Version Installed: 10.3.24
    • When was last time updated Centmin Mod code base ? : new install from 2 weeks ago
    • Persistent Config:
      Code (Text):
      LETSENCRYPT_DETECT='y'
      
    Hello there.
    Two weeks ago I have installed centmindmod. It is all up to date and working fine, except there is some kind of caching and development on it is really terrible as I have to wait exactly 120 seconds before an html file is rendered with the updated content. Below is the simple code that I am using for the html file:

    Ubuntu Pastebin

    Now, if I upload that file and open it in my browser, it will render all the information normally. But if I change any of the text in the javascript area or even the title, refreshing the browser does not show the changes. They are shown after exactly 120 seconds.

    By the way, I am using Chrome in incognito mode. Tried with other browsers with the same result. Also used the following guide but still no change:
    Turn OFF all Nginx, PHP-FPM & OPcache caches on a development server

    Can you please suggest where this 120 seconds of caching might be set so I can start my development phase?
     
  2. eva2000

    eva2000 Administrator Staff Member

    45,201
    10,279
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +15,932
    Local Time:
    8:52 PM
    Nginx 1.19.x
    MariaDB 5.5/10.x
    Is the html generated by PHP/PHP Files ? If the file is php then yes caching could be Zend Opcache related, the default revalidate frequency is 180 seconds
    Code (Text):
    php --ri 'Zend OPcache'
    
    Zend OPcache
    
    Opcode Caching => Disabled
    Optimization => Disabled
    SHM Cache => Enabled
    File Cache => Disabled
    Startup Failed => Opcode Caching is disabled for CLI
    
    Directive => Local Value => Master Value
    opcache.enable => On => On
    opcache.use_cwd => On => On
    opcache.validate_timestamps => On => On
    opcache.inherited_hack => On => On
    opcache.dups_fix => Off => Off
    opcache.revalidate_path => Off => Off
    opcache.log_verbosity_level => 1 => 1
    opcache.memory_consumption => 64 => 64
    opcache.interned_strings_buffer => 8 => 8
    opcache.max_accelerated_files => 8000 => 8000
    opcache.max_wasted_percentage => 5 => 5
    opcache.consistency_checks => 0 => 0
    opcache.force_restart_timeout => 180 => 180
    opcache.revalidate_freq => 180 => 180
    opcache.file_update_protection => 2 => 2
    opcache.preferred_memory_model => no value => no value
    opcache.blacklist_filename => no value => no value
    opcache.max_file_size => 0 => 0
    opcache.protect_memory => 0 => 0
    opcache.save_comments => 1 => 1
    opcache.fast_shutdown => 1 => 1
    opcache.optimization_level => 0x7FFFBFFF => 0x7FFFBFFF
    opcache.enable_file_override => On => On
    opcache.enable_cli => Off => Off
    opcache.error_log => no value => no value
    opcache.restrict_api => no value => no value
    opcache.lockfile_path => /tmp => /tmp
    opcache.file_cache => no value => no value
    opcache.file_cache_only => 0 => 0
    opcache.file_cache_consistency_checks => 1 => 1
    opcache.huge_code_pages => Off => Off


    You can exclude a file or path from Zend Opcache caching completely via blacklist option too
    To customise Zend Opcache settings see the instructions to create your own .ini settings file to retain the changes at https://centminmod.com/phpfpm.html#customphpini

    Example order of php .ini files applied via php --ini command
    Code (Text):
    php --ini
    Configuration File (php.ini) Path: /usr/local/lib
    Loaded Configuration File:         /usr/local/lib/php.ini
    Scan for additional .ini files in: /etc/centminmod/php.d
    Additional .ini files parsed:      /etc/centminmod/php.d/a_customphp.ini,
    /etc/centminmod/php.d/curlcainfo.ini,
    /etc/centminmod/php.d/geoip.ini,
    /etc/centminmod/php.d/igbinary.ini,
    /etc/centminmod/php.d/imagick.ini,
    /etc/centminmod/php.d/mailparse.ini,
    /etc/centminmod/php.d/memcache.ini,
    /etc/centminmod/php.d/memcached.ini,
    /etc/centminmod/php.d/redis.ini,
    /etc/centminmod/php.d/zendopcache.ini

    If i want to override opcache.revalidate_freq 180 seconds default, I'd create a .ini file after /etc/centminmod/php.d/zendopcache.ini alphabetically i.e. /etc/centminmod/php.d/zzendopcache.ini

    So ordered after zendopcache.ini
    Code (Text):
    php --ini
    Configuration File (php.ini) Path: /usr/local/lib
    Loaded Configuration File:         /usr/local/lib/php.ini
    Scan for additional .ini files in: /etc/centminmod/php.d
    Additional .ini files parsed:      /etc/centminmod/php.d/a_customphp.ini,
    /etc/centminmod/php.d/curlcainfo.ini,
    /etc/centminmod/php.d/geoip.ini,
    /etc/centminmod/php.d/igbinary.ini,
    /etc/centminmod/php.d/imagick.ini,
    /etc/centminmod/php.d/mailparse.ini,
    /etc/centminmod/php.d/memcache.ini,
    /etc/centminmod/php.d/memcached.ini,
    /etc/centminmod/php.d/redis.ini,
    /etc/centminmod/php.d/zendopcache.ini,
    /etc/centminmod/php.d/zzendopcache.ini


    In /etc/centminmod/php.d/zzendopcache.ini add value say 10 seconds
    Code (Text):
    opcache.revalidate_freq = 10


    Note though reducing revalidation frequency lowers performance of caching all the time 24/7. Best way is just to restart php-fpm and nginx after file updates which are done manually via command shortcut
    Code (Text):
    nprestart

    After restart recheck value is now at 10 seconds
    Code (Text):
    php --ri 'Zend OPcache'
    
    Zend OPcache
    
    Opcode Caching => Disabled
    Optimization => Disabled
    SHM Cache => Enabled
    File Cache => Disabled
    Startup Failed => Opcode Caching is disabled for CLI
    
    Directive => Local Value => Master Value
    opcache.enable => On => On
    opcache.use_cwd => On => On
    opcache.validate_timestamps => On => On
    opcache.inherited_hack => On => On
    opcache.dups_fix => Off => Off
    opcache.revalidate_path => Off => Off
    opcache.log_verbosity_level => 1 => 1
    opcache.memory_consumption => 64 => 64
    opcache.interned_strings_buffer => 8 => 8
    opcache.max_accelerated_files => 8000 => 8000
    opcache.max_wasted_percentage => 5 => 5
    opcache.consistency_checks => 0 => 0
    opcache.force_restart_timeout => 180 => 180
    opcache.revalidate_freq => 10 => 10
    opcache.file_update_protection => 2 => 2
    opcache.preferred_memory_model => no value => no value
    opcache.blacklist_filename => no value => no value
    opcache.max_file_size => 0 => 0
    opcache.protect_memory => 0 => 0
    opcache.save_comments => 1 => 1
    opcache.fast_shutdown => 1 => 1
    opcache.optimization_level => 0x7FFFBFFF => 0x7FFFBFFF
    opcache.enable_file_override => On => On
    opcache.enable_cli => Off => Off
    opcache.error_log => no value => no value
    opcache.restrict_api => no value => no value
    opcache.lockfile_path => /tmp => /tmp
    opcache.file_cache => no value => no value
    opcache.file_cache_only => 0 => 0
    opcache.file_cache_consistency_checks => 1 => 1
    opcache.huge_code_pages => Off => Off

    Any php related setting can override and customised this way as well :)
     
  3. eva2000

    eva2000 Administrator Staff Member

    45,201
    10,279
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +15,932
    Local Time:
    8:52 PM
    Nginx 1.19.x
    MariaDB 5.5/10.x
    If not PHP, then try in your nginx location context in Nginx vhost setting open_file_cache to disabled
    Code (Text):
    open_file_cache off;

    or reduce validity
    Code (Text):
    open_file_cache_valid 60s;

    then restart Nginx
    Code (Text):
    ngxrestart

    as by default it's set for 120 seconds http://nginx.org/en/docs/http/ngx_http_core_module.html#open_file_cache