Développement Article

Validation Let’s Encrypt avec un domaine protégé

Validation Let’s Encrypt avec un domaine protégé

Je viens de perdre un peu de temps sur un problème, alors je partage ma solution ici.

J’ai un nouveau serveur sur lequel je souhaitais passer en SSL pour mes domaines protégés. Comme Let’s Encrypt propose des certificats SSL gratuits et de qualité, je me suis tourné vers cette solution. Pour l’installation, c’est facile et vous trouverez plein de tutoriel sur ce sujet.

Let’s Encrypt propose de valider le nom de domaine en allant vérifier le répertoire .well-known dans votre racine web. Comme chaque certificat émis ne dure que 3 mois, il faut créer une tâche CRON qui va permettre de valider le domaine, émettre un nouveau certificat et l’installer.

Problème, si votre accès au domaine est protégé par un .htaccess couplé à un .htpasswd alors la validation n’a pas lieu correctement puisque l’accès et refusé. Voici une solution très simple. à laquelle j’aurais dû pensé plus tôt … Du fait de son fonctionnement même htaccess fonctionne répertoire par répertoire, il suffit donc d’aller créer un .htaccess dans le répertoire .well-known et y ajouter les instructions suivantes :

Vous pouvez maintenant tester et Let’s Encrypt aura bien accès au répertoire .well-know pour sa validation. Ainsi le certificat pourra être émis de nouveau sans problème.

J’espère que ça vous aidera.

 

 

Sitemap : Erreur 404 avec WordPress sous Nginx

Sitemap : Erreur 404 avec WordPress sous Nginx

Comme je viens de passer un petit moment à trouver une solution pour ce problème, je me suis dit que je partagerais la solution ici comme mémo mais aussi pour ceux qui seraient confronté au problème.

Mon plugin WordPress pour créer un sitemap est Better WordPress Google XML Sitemaps. Mais le problème semble être le même avec Yoast SEO. Vous pourrez surement donc adapter la solution pour Yoast.

En configurant votre Nginx pour WordPress, vous devez avoir créé une ligne qui ressemble à ceci :

Comme les plugins de WordPress n’écrive pas le fichier sitemap.xml en dure sur le serveur, il génère en dynamique (avec cache) le sitemap. Il faut donc diriger sitemap.xml vers la bonne URL qui va générer le sitemap. Voici pour ma part ce que j’ai utilisé dans mon fichier nginx.conf (dans la racine de mon site, mais vous pouvez le mettre dans votre fichier de config de nginx ou de vhost directement).

ATTENTION : À ce stade, si vous souhaitez tester si ça fonctionne il faut REDÉMARRER NGINX

Soit faire la commande suivante :

Voilà, votre sitemap a retrouvé ces couleurs et est prêt à servir google et autres répertoires …

Si vous avez des questions, n’hésitez pas.

Amélioration des performances de WPML

Amélioration des performances de WPML

Je sais que vous êtes plusieurs à utiliser WPML pour vos sites multilingues sous WordPress. Je m’en sert moi même pour quelques sites de ma compagnie et de clients. Je dois avouer que la performance de WPML a toujours été un petit problème qui pouvait même se révéler très dérangeant dans certain cas comme avec WooCommerce.

C’est toujours appréciable de voir qu’une équipe, comme celle de WPML, prends au sérieux les gens qui paye pour leur plugin et écoute le feedback.

D’où viennent / venaient les problèmes de performances

Lorsque j’utilise WPML, j’installe presque dans tous les cas, ces plugins « compagnons » : WPML String translation et WPML Media. Lorsque tout cela est installé sur votre WordPress, il y a 20 nouvelles tables MySQL qui s’installent. Pour comparaison, WordPress ne possède que 12 tables à lors d’une nouvelle installation. Donc voilà, WPML est gourmand en ressource mémoire et CPU pour les requêtes SQL qu’il exécute pour afficher les pages. Plus vous avez de chaînes traduites, plus il exécute des requêtes.

Dans le cas de WooCommerce, si vous utilisez les variations de produits (comme couleurs ou tailles), WPML démultiplie le nombre de requêtes ce qui fait chauffer le processeur et gonfler la mémoire. Ceci provoque un vrai goulot d’étranglement lors du chargement de la page.

Comment la version 3.5 de WPML améliore les performances

Peu importe ce que vous avez entendu sur WPML, je vous conseille de lui donner une chance avec cette version 3.5 (et plus). D’après un article de WPML, qui explique leur processus d’optimisation, des efforts ont été déployé pour tester différentes solutions et ont réussi à améliorer les performances de façon très perceptibles. Voici un tableau donné par l’équipe elle même qui explique les performances gagnées.

PHP versionPageMemory consumption savingCPU utilization saving
PHP 5.6Home60%41%
Admin dashboard41%33%
PHP 7Home50%16%
Admin dashboard33%15%

Autant dire que ça fait une différence lors du chargement de vos pages mais aussi de l’admin. Pour ceux qui ont l’habitude d’attendre que l’admin se charge, je peux vous dire que c’est un vent de fraicheur 🙂

Je n’ai pas encore pu tester avec PHP7, mais comme l’explique WPML, les anciennes versions de WPML sont beaucoup plus réactives sur PHP7 que PHP5. Cependant il semble y avoir un boost de performance dans les 2 cas.

Pour les développeurs de sites WordPress qui utilisent souvent WPML, je pense que de mettre à jour le(s) plugin(s) est un must. Si vous avez l’occasion de pouvoir avoir un hébergement PHP7, vos clients et les visiteurs de ces sites ne pourrons que mieux vous aimer.

Si vous avez des retour d’expérience avec WPML, n’hésitez pas à mettre un message plus bas.

 

PS : Si vous passez par une de mes liens pour acheter WPML, je touche une petite commission. Sachez que ça ne vous coûte pas plus cher et que ça m’aide à sponsoriser ce genre d’article.
Tester PHP7 avec MAMP PRO 3

Tester PHP7 avec MAMP PRO 3

La dernière mouture de PHP est sortie en décembre 2015 dans un silence assez obscur, pourtant, si la version 6 de PHP est morte dans l’oeuf, PHP 7 semble très prometteur. Voici une liste de quelques nouveautés et améliorations de PHP 7 :

  • Performance améliorée : PHP 7 est jusqu’à 2 fois plus rapide que PHP 5.6
  • Réduction de l’utilisation mémoire
  • support du 64 bit plus consistant
  • Passage de beaucoup d’erreurs fatales en Exceptions
  • Générateur de nombre aléatoire sécuritaire
  • Classes anonymes

Tester votre code avec PHP 7 et d’autres versions de PHP grâce à MAMP PRO 3.

Si vous souhaitez tester votre code avec PHP 7 avant de passer en production, MAMP PRO 3 est solution vraiment simple. La version 3.5 propose nativement PHP7 et vous permet de faire un « virtual host » avec une version différente de PHP. Vous pourrez donc par exemple avoir un site en PHP 5.6, un autre en PHP 5.4.2 puis un dernier en PHP 7. MAMP PRO se révèle donc très pratique pour tester votre code sous différente version de PHP, une chose assez compliquée à mettre en place sur un serveur de production.

Capture d’écran 2016-02-17 à 22.03.36

MAMP PRO 3 se révèle donc très pratique pour tester votre code en local avec différentes versions de PHP. Avec l’évolution du paysage des hébergements dans les futurs mois, tester votre code dès maintenant pour se préparer à PHP7 semble être une bonne pratique. Étant donnée les gains de performance engendrés par PHP7, il se peut que beaucoup d’hébergeur passe à cette version pour faire quelques économies.

Si vous avez des questions, n’hésitez pas à les poser plus bas dans cette page. Ça me fera plaisir d’y répondre.

 

 

Tutoriel site web multilingue avec WordPress et WPML – Partie 1 – Installation et configuration

Tutoriel site web multilingue avec WordPress et WPML – Partie 1 – Installation et configuration

Créer un site web multilingue est toujours un beau problème. En France comme au Québec, en tant que freelance, il n’est pas rare d’avoir à faire un site web en plusieurs langues. J’ai donc décidé de faire un tutoriel qui portera sur comment utiliser WordPress et WPML pour créer un site multilingue. Il sera composé de 3 parties distincte. WPML est LE plugin à utiliser pour les sites multilingues. Même si payant (peu cher pour le service rendu à mon avis), ceci assure un suivi du plugin avec une équipe performante.

  1. Installation et configuration
  2. Traduction des articles, pages et custom post WordPress
  3. Traduction des chaînes de caractère (texte en PHP (hardcodé) dans le thème ou les widgets)

Installation de WPML

L’installation de WPML est très simple, et vous pouvez l’ajouter à n’importe quel moment du développement d’un site. Voici les étapes à suivre :

  • Aller sur le site de WPML : http://wpml.org/fr.
  • Décider le plan que vous souhaitez prendre. il existe 3 plans différents. Si vous faites un site web complet en utilisant WordPress comme un CMS, si vous utilisez les « custom posts » et « custom taxonomy » vous devrez prendre le plan CMS multilingue à 79$.
  • Une fois acheté vous allez pouvoir télécharger le plugin.
  • Aller dans l’admin de votre WordPress puis dans le menu « Extensions » puis « Ajouter », cliquez sur Ajouter une extension et sélectionné l’archive que vous venez de récupérer.
  • Une fois installé, vous verrez dans votre menu de gauche, un nouveau menu WPML.

Important : Si vous êtes développeur et que vous souhaitez utiliser le plugin WPML sur le site de vos clients, je vous encourage à prendre le plan CMS multilingue à vie.

Choisissez les langues du projet

Pour la configuration, c’est assez simple, il va vous falloir définir quelles langues vous souhaitez utiliser, quelle langue vous souhaitez par défaut, comment vous souhaitez ajouter visuellement le sélecteur de langue sur votre site et très important, la façon dont les URL vont fonctionner.

Voici une série d’images annotées qui vont vous aider à comprendre comment faire :

Window_et_Langues_‹_Fabline_—_WordPress

Window_et_Langues_‹_Fabline_—_WordPress 2

 

Choisir le format des URL pour les langues

Une fois les langues ajoutées au projet, vous devez spécifier la façon dont vous souhaiter que le système de langue fonctionne. Vous avez alors 3 choix :

  1. Langues différentes dans les répertoires (http://domaine.com/en/)
  2. Un sous-domaine différent pour chaque langue (http://en.domaine.com/)
  3. Langue ajoutée dans un paramètre GET (http://domaine.com?lang=en)

Pour ma part, je conseille souvent le choix 1 qui est à mon avis le plus jolie à l’oeil mais aussi qui semble être le meilleur choix pour votre SEO.

Sélecteur de langue

La rubrique suivante vous propose de régler la façon dont le sélecteur de langue va s’afficher. Je ne suis vraiment pas fan de cette façon de faire, je ne me sers donc juste pas de ce composant. Voici ce que je fais à la place et qui me donne beaucoup plus de liberté au niveau du placement et de la forme. Vous pouvez copier ce bout de code dans votre fichier functions.php :

Vous pouvez bien entendu modifier ce code pour afficher le sélecteur de langue de la façon que vous souhaitez. Une fois prêt, vous pouvez appeler cette fonction dans votre thème, là où vous souhaitez voir apparaître le sélecteur. Vous pouvez aussi ajouter du CSS pour habiller ce code HTML selon vos besoins.

Conclusion

Si vous avez besoin d’aide à cette étape (installation et configuration), laissez un message dans les commentaires et j’essayerais de vous aider au maximum de mes connaissances. La suite de ce tutoriel suivra sous peu et nous verrons le moyen de traduire les articles, pages er custom post. À bientôt !