21 Mai

Optimiser PHP avec Zend Opcache

Zend Opcache (ex Zend Optimizer+) est un accélérateur PHP et il fonctionne plutôt bien. Comment ? Il faut savoir que les scripts PHP doivent être compilés en PHP bytecode à chaque exécution, et on constate pour cette raison des temps de réponse de l’ordre de 500ms sur un back-end PHP faisant tourner un WordPress. Zend Opcache stocke et optimise ce code compilé pour une ré-utilisation ultérieure. Et il est plutôt performant.

Zend Opcache est compatible avec PHP depuis la version 5.2 et y est même intégré depuis la 5.5. Malheureusement il n’est pas disponible sur Debian (Wheezy en 7.5) à l’heure actuelle. Alors comment faire ?
Lire la suite

16 Mai

Débuguer sa Config Nginx et ses Regex

Pendant la rédaction de la précédente série d’articles, je dois avouer avoir passé du temps à débuguer ma configuration Nginx. Bien sûr, le premier réflexe est de passer son error_log en debug. Mais il n’apporte qu’une aide limitée, et il est toujours aussi difficile de savoir quel est le comportement exact de Nginx ou pourquoi cette damnée regex ne fonctionne pas exactement comment il faut.
Lire la suite

15 Mai

Optimiser WordPress avec NGINX et W3 Total Cache – Fin

Suite à l’article précédent, on dispose maintenant, grâce aux mécanismes de cache de W3 Total Cache (W3TC), d’un site WordPress relativement bien optimisé et résistant aux pannes PHP/MySQL. Il ne reste plus maintenant qu’à précharger ce cache afin qu’une version de chaque page y soit déjà présente à chaque nouvelle visite. Ce point est particulièrement important avec les paramètres « Inline CSS minification » et « Inline JS minification » qui assomment le CPU avec, sur ce blog, 6 à 8s pour générer la page d’accueil.
Lire la suite

13 Mai

Optimiser WordPress avec NGINX et W3 Total Cache – Suite

Ce post continue le précédent sur l’optimisation de WordPress avec Nginx et W3 Total Cache (W3TC). Après avoir passé une configuration standard et vérifié le bon paramétrage de la compression Gzip, il est temps de passer à la configuration de W3TC. Est-il besoin de rappeler que c’est le bon moment pour réaliser un back-up de la de données? A priori les opérations suivantes sont sans danger, mais on ne sait jamais.
Lire la suite

10 Mai

Optimiser WordPress avec NGINX et W3 Total Cache – Intro

WordPress est un outil de blog très populaire, mais il faut le reconnaître tel quel, il est très consommateur de ressource. L’affichage des pages est abominablement lent même sur un site à faible trafic sur un serveur robuste. Ce post va donc présenter des optimisations très efficaces qui permettront à la fois de descendre à un affichage de pages sous la demi-seconde et de permettre à votre serveur d’encaisser un trafic plus important. Je me sers ici de W3 Total Cache (W3TC) qui est assez bon, on peut lui préférer WP Super Cache, pourquoi pas, mais la configuration de Nginx sera différente.

Environnement

OS : Debian 7.5 stable (Wheezy) (64bits)
Nginx : nginx/1.6.0
PHP : 5.5.12-1 avec Zend Engine v2.4.0 et Zend OPcache v7.0.4
W3 Total Cache : Version 0.9.4 avec les paramètres suivants

  • Page Cache – Disk Enhanced
  • Minify – Disk ou Désactivé (le Minify peut massacrer des thèmes mal codés)
  • Database Cache – Memcache ou Alternative PHP Cache (APC)
  • Object Cache – Memcache ou Alternative PHP Cache (APC)
  • Browser Cache – Désactivé (on laisse Nginx le gérer)

Lire la suite

30 Avr

Nginx avec Certificat SSL Autosigné

La nature humaine étant ce qu’elle est, particulièrement sur internet, il est de plus en plus indispensable de pouvoir chiffrer ses communications et authentifier le serveur avec lequel on échange. Le protocole SSL répond à ce besoin mais il nécessite de disposer au préalables de certificats.

Il faut savoir qu’il existe deux type de certificats SSL. Ceux qui sont signés par une autorité de certification (CA) comme Verisigns ou Thawte, minimum 50€ par an ou plus, et ceux auto-signés et gratuits. Le signataire étant censé être un tiers de confiance garantissant la validité du certificat, on comprend que cela peut poser problème dans le cas des certificats auto-signés. Ceci dit, pour un usage personnel, vous pourrez raisonnablement supposer, sauf à être schizophrène, que vous pouvez faire confiance à vous même et au certificat que vous avez auto-signés.

Je propose donc, dans ce post, un script qui permet de générer rapidement une clé privée RSA de 2048 bits et un certificat auto-signé. Je donne aussi quelques explications qui, une fois le certificat créé, permettront de le mettre en place sur votre serveur web préféré (nginx).
Lire la suite

28 Avr

Nginx et PHP

Nginx est un serveur web concurrent d’Apache très populaire, mais il est bien plus encore. Il peut aussi être utilisé comme reverse-proxy, load-balancer, terminaison ssl etc. Personnellement, je le trouve bien plus simple et cohérent à configurer qu’Apache. Ce post va proposer et expliquer une configuration basique pour faire tourner nginx avec du php sous Debian.
Concernant les configurations que l’on peut trouver dans les tutos sur internet, j’appellerai à la plus grande méfiance (à commencer par le mien) ! Pour vous en convaincre, je vous conseille de faire un tour sur la page des pièges de config du wiki nginx. La erreurs référencées se retrouvent fréquemment dans la plupart des tutos quand ces derniers n’utilisent pas des éléments de config obsolètes. Bien évidemment, je m’inspire des docs officielles (ici et ) pour mes propres configurations.
Lire la suite

26 Avr

Intégrer Highcharts à WordPress

Highcharts est un outil puissant et flexible pour générer des graphiques d’une grande qualité visuelle. De plus, ils viennent récemment de mettre à disposition une GUI en ligne qui permet à n’importe quel néophyte en java de générer ses propres graphiques en quelques minutes. Il ne reste plus qu’à l’intégrer à son propre WordPress, mais, jusqu’à maintenant, je n’ai pas vu de méthodes très satisfaisantes sur le net. Généralement, il s’agit d’alourdir son wordpress avec un plugin de plus, ou de modifier le header.php de son thème…

Alors voici ma propre méthode, en supposant que vous ayez déjà créé un graphique dans une page web standalone ou utilisé Cloud Highcharts comme dans mon exemple, il vous suffit d’ajouter dans l’éditeur de texte de votre WordPress:

C’est tout ! On obtient alors comme résultat:
Lire la suite

24 Avr

Quelques Outils Online pour Webmasters

Dans la série des outils pratique pour optimiser son site web:

Ils permettent tous les quatre d’analyser les performances de son site web site et donnent des conseils d’optimisation (activer la compression, minify etc.). WebPageTest et PingDom présentent même un waterfall (chronogramme?) de l’affichage de votre site ce qui donne une bonne idée de l’origine des ralentissements.

Et aussi, le jour où vous vous décidez à modif la config de votre nginx/apache, pour répondre aux questions:

Ceci dit, si vous faites tourner un CMS, cachez absolument les requêtes PHP et BDD. Au final, c’est ce qui prend le plus de temps!