OPcache (qui signifie Optimizer Plus Cache) est introduit depuis la version 5.5.0 de PHP. Il sert à cacher l’opcode de PHP, c’est-à-dire les instructions de bas niveau générées par la machine virtuelle PHP lors de l’exécution d’un script. Autrement dit, le code pré-compilé est stocké en mémoire. Cela évite ainsi l’étape de compilation à chaque requête PHP. De plus, OPcache va optimiser l’exécution du code afin d’en améliorer les performances.
[opcache] opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.revalidate_freq=1 opcache.save_comments=1
systemctl restart php7.3-fpm.service
APCu permet notamment de mettre en cache les variables PHP et de les stocker en mémoire vive. Redis est un système de gestion de base de données NoSQL avec un système de clef-valeur scalable (s’adapte à la charge). Une des principales caractéristiques de Redis est de conserver l’intégralité des données en RAM. Cela permet d’obtenir d’excellentes performances en évitant les accès disques, particulièrement coûteux.
apt-get install php-apcu redis-server php-redis -y
<?php $CONFIG = array ( 'instanceid' => '*****secret*****', 'passwordsalt' => '*****secret*****', 'secret' => '*****secret*****', 'trusted_domains' => array ( 0 => 'cloud.mondomaine.com', ), 'datadirectory' => '/var/www/nextcloud/data', 'overwrite.cli.url' => 'http://cloud.mondomaine.com', 'dbtype' => 'mysql', 'version' => '13.0.2.1', 'dbname' => 'nextcloud', 'dbhost' => 'localhost', 'dbport' => '', 'dbtableprefix' => 'oc_', 'dbuser' => 'www-data', 'dbpassword' => '*****secret*****', 'installed' => true, 'memcache.local' => '\\OC\\Memcache\\APCu', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ), );
systemctl restart php7.3-fpm.service
sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint