web-dev-qa-db-fra.com

Nginx + WordPress + HHVM: Pourquoi Batcache ne fonctionne-t-il pas? Est-ce que Vernis aiderait encore plus?

J'ai entendu de très bonnes choses surHHVM, de sorte que j'ai installé une copie du blog WordPress (sur un autre domaine) avec Nginx (avec le module Pagespeed) et HHVM. À l’heure actuelle, les avantages sont évidents: sur la même configuration, les temps de chargement sont entre deux et trois fois plus rapides.

J'essaie d'accélérer un peu les choses et j'ai également installé Memcached et Batcache . J'ai installé le memcached package, copié object-cache.php ( Pastebin ) dans le dossier racine du blog WordPress, puis j'ai installé le Batcache et copié le fichier advanced-cache.php ( Pastebin ) dans le dossier wp-content. De plus, j'ai inclus la ligne

define('WP_CACHE', true);

dans le fichier wp-config.php. Il semble que cela ne fonctionne pas, cependant. Si je recharge rapidement la page plusieurs fois Batcache devrait afficher la page mise en cache, mais ce n'est pas le cas. Il est facile de vérifier cela en rechargeant plusieurs fois la page (Cmd + R sous Chrome sous OS X), puis en affichant le code de la page. Dans la section <head>, je devrais voir certaines statistiques de batcache, mais elles ne sont pas là.

Je me demande si quelqu'un pourrait me donner un indice à ce sujet.

Sur une note de côté, je ne sais pas si je pourrais ajouter un autre composant afin d’améliorer encore les performances. Je suis triste à propos de Varnish , mais je ne suis pas sûr que ce soit simplement inutile ou que ce soit une autre façon de procéder que je suis en train de faire. Tout autre composant là-bas? (Je vais tester CDN pour les images, js, etc. et quelques autres astuces, mais je parle du point de vue du serveur).

5
javipas

J'imagine que la réponse est que HHVM ne fonctionne pas avec la mise en cache d'opcode typique, le compilateur n'est pas la même chose que le PHP "normal". HHVM a sa propre mise en cache opcode qui, autant que je sache, n’intègre pas APC ou OPcache de Zend, c’est sa propre chose. En d'autres termes, ce serait redondant.

Vous pouvez lire à ce sujet en détail ici: http://hhvm.com/blog/4061/go-faster (comparaison avec APC).

Vous pouvez cependant utiliser la mise en cache de HHVM avec memcached (du moins je pense que vous le pouvez), il existe plusieurs problèmes et correctifs sur le github de HHVM à ce sujet, https://github.com/facebook/hhvm

Je n’ai jamais utilisé HHVM, mais il doit exister un moyen de tester ou de déboguer le cache, c’est probablement votre meilleur itinéraire, les plugins qui tirent parti de la "normale" PHP comme si batcache ne montrait rien.

Pour vérifier si cela fonctionne, désactivez la mise en cache HHVM (je pense que les paramètres se trouvent dans les options d'exécution) et testez le site en le mettant en/hors service ou avec différents paramètres de cache.

Une autre option consiste à simplement define('WP_CACHE', true) dans votre fichier wp-config.php , et vous pourrez comparer HHVM avec cette option et voir si elle a un effet quelconque.

Vous pouvez voir ici une liste compatible de PHP extensions fonctionnant avec HHVM: https://github.com/facebook/hhvm/tree/master/hphp/runtime/ext

1
Wyck