Accélération 39; WP Administrator with redis and hhvm
Lorsque nous avons demandé aux lecteurs quels sujets ils voulaient discuter dans notre tutoriel, trois étaient les plus importants: optimiser la vitesse du site sécurité optimiser la vitesse de l’Administrateur WP nous avons introduit les deux premiers sujets dans les tutoriels précédents, donc le thème d’aujourd’hui est optimiser votre administrateur WP. En raison de sa nature dynamique, nous ne pouvons pas mettre en cache la page, mais cela ne signifie pas que nous ne pouvons pas la rendre plus rapide! Remarque: la technologie que je vais vous montrer ici va généralement accélérer WordPress (pas seulement les administrateurs), mais si vous faites n’importe quel type de mise en cache de page (décrit dans un autre tutoriel), elle n’aura pas beaucoup d’impact sur l’aspect visiteur.
Pour ce tutoriel, vous avez besoin de votre propre serveur privé virtuel (sinon, voir ce tutoriel) et utilisez Ubuntu 14.04 x64 et nginx comme serveurs Web. Gardez à l’esprit que ce que nous faisons ici peut endommager non seulement WordPress, mais aussi le serveur, alors assurez – vous d’avoir une sauvegarde, ou il est préférable d’essayer en premier dans l’environnement de mise en scène \/ test. Yu slow WP Management? Après le chargement de la page d’administration WP, il y a deux processus: le traitement PHP (compiler le Code PHP dans un code compréhensible par l’ordinateur) et la requête MySQL (opération de base de données). Plus vous avez de plug – ins, plus votre gestion de WP est lente. Ça vous dit quelque chose?
Heureusement, nous pouvons utiliser hhvm pour optimiser le traitement PHP et le cache d’objets pour optimiser le traitement MySQL (dont nous discuterons bientôt). L’installation de hhvm hhvm est une machine virtuelle développée par quelques ingénieurs Facebook intelligents et remplace essentiellement PHP – fpm comme notre processeur PHP. Presque. Le problème, c’est qu’il s’agit de ce que nous appelons le logiciel le plus avancé, ce qui signifie qu’il n’a pas été largement testé dans l’environnement de production (c’est – à – dire en dehors de Facebook), donc ce que nous allons faire est d’utiliser
Identifiez le bloc de localisation responsable du traitement PHP et remplacez – le par les deux suivants: emplacement ~. (HH | php) ${proxy _ interface Errors on; error page 502 = @ fpm; try Files $Uri \/ index.php; include FastCGI Parameters; FastCGI pass UNIX: \/ var \/ Run \/ hhvm \/ hhvm.sock; FastCGI Param Param script file name $document root $root $root $FastCGI FastCGI pass UNIX: \/ var \/ Run \/ hhvm \/ hhvm.sock; FastCGI Param script PHP) ${proxy interface Errors on; error page 502 = @ fpm; try Files $Uri \/ index.php; include FastCGI Parameters; fastcgu script _ name; FastCGI index.php;} Emplacement @ fpm {try _ files $Uri \/ index.php; include FastCGI params; FastCGI pass UNIX: \/ var \/ Run \/ php5-fpm.sock; FastCGI Param script FILENAME $document root $FastCGI script name; FastCGI index.php;} Avez – vous remarqué l’instruction Error _ page 502? C’est notre filet de sécurité; Si, pour une raison ou une autre, le hhvm s’écrase ou ne répond pas à une demande, PHP – fpm prend le relais et le traite comme s’il n’avait rien.
Cette étape de l’installation du moniteur est facultative, mais elle garantira que le hhvm redémarre correctement lorsqu’il consomme une grande quantité de mémoire ou de processeur. Vous ne voulez pas vérifier manuellement si le hhvm s’écrase. Parce que tu as d’autres choses à faire. Monit est un processus (qui fonctionne en arrière – plan) qui surveille constamment les autres processus de plusieurs façons: Combien de ressources ils utilisent, combien de ressources ils exécutent, écoute les adresses \/ ports corrects, et ainsi de suite. Monit est ce que vous appelez un moniteur système. L’installation est simple, il suffit d’exécuter les commandes suivantes:
$sudo APT get install Monit ceci installe et démarre Monit, mais ne teste aucun processus facilement disponible, Pour ce faire, vous devez ajouter un fichier de configuration: $sudo Nano \/ etc \/ Monit \/ conf.d \/ hhvm ajouter ce qui suit: vérifier les processus hhvm et pidfile \/ var \/ Run \/ hhvm \/ PID Group hhvm Start Program = \
Près du fichier de configuration principal \/ etc \/ Monit \/ monirc et de la ligne 50, vous devriez voir une directive Mailserver set. Décochez et saisissez les informations du serveur de courrier pour qu’elles ressemblent à ceci:
Définissez le serveur de courrier SMTP. Gmail. Com port 587 nom d’utilisateur \
$sudo Service Monit restart pour vérifier l’état du service, lancez $sudo Monit status. Voilà, votre fidèle chien de garde, Monit, surveille le hhvm. Si vous souhaitez surveiller d’autres services, j’ai écrit l’idée de configurer les services communs: il suffit de les copier dans un fichier séparé (dans le même répertoire où vous avez configuré hhvm), puis de redémarrer le moniteur – En utilisant redis et hhvm pour améliorer la mise en cache des objets, nous avons amélioré le temps de traitement PHP, donc concentrons – nous maintenant sur le deuxième goulot d’étranglement majeur: les requêtes MySQL.
WordPress a sa propre solution de mise en cache d’objets, mais le problème est qu’elle n’est pas persistante (sauvegardée) entre les requêtes, ce qui signifie qu’elle doit être régénérée dans chaque requête. De toute évidence, cela n’a pas beaucoup contribué à notre rendement, et nous devons donc le rendre durable. Une façon est de les enregistrer dans la base de données, mais cela nous empêche de réduire les requêtes, c’est pourquoi nous les stockons dans redis. Installer redis
Sera considéré comme un moteur de base de données qui stocke les données non pas sur le disque dur, mais en mémoire (les données sont écrites et lues plusieurs ordres de grandeur plus rapidement que le disque dur). Une seule commande est nécessaire pour installer redis: $sudo APT get install redis Server peut être lancé immédiatement sans configuration! Comme redis n’est pas pris en charge par PHP, nous devons également installer le module pour cela: $sudo APT get install PHP5 redis est maintenant en cours d’exécution (PHP sait comment se connecter à redis) et il est temps de dire à WordPress qu’il devrait l’utiliser pour mettre en cache des objets. Tout d’abord, vous devez ouvrir WP config. PHP et faire savoir à WordPress sur quel hôte et Port redis fonctionne et ajouter un sel à la clé (particulièrement important si vous exécutez plusieurs sites WordPress sur le même serveur): définir (‘WP _ cache Key Salt’, ‘mydomain u’) $ Redis _ server = array (‘host’ = > ‘127.0.0.1’, ‘port’ = > 6379,); Maintenant, nous devons installer le plug – in WP redis. Ne l’activez pas parce que vous verrez probablement une erreur; Ce que vous devriez faire est de copier le fichier cache de l’objet. Php fournit et insère le contenu WP: $CD \/ Path \/ to \/ wordpress $CP WP content \/ plug – in \/ WP redis \/ Object cache. C’est le cas du contenu de PHP WP, et WordPress démarre automatiquement la mise en cache sur redis lorsqu’il trouve un fichier de cache d’objet. Php en position! Pour vérifier qu’il fonctionne correctement, lancez $redis CLI Monitor et Rafraîchissez la page (lors de la connexion). Vous devriez voir le Journal d’activité redis pour les clés définies et récupérées. Conclusion la mise en cache est une mesure importante que toutes les applications Web (et wordpress ne fait pas exception) doivent utiliser pour offrir une excellente expérience utilisateur: personne n’aime attendre une réponse lente! Grâce à hhvm et redis, nous avons fait un pas important vers une utilisation rapide et intéressante de la gestion de WP. Tu as tes propres Tours? Fais – moi savoir.
Allonge – toi là.