Passer son blog en PHP7 facilement.

PHP7 est sorti depuis 2015 et progressivement les hébergeurs sérieux proposent cette version pour faire tourner votre blog WordPress ou un autre CMS. Pour ceux qui ne le savent pas, PHP est un langage de programmation interprété qui permet de générer des pages web (en HTML). La plus grosse nouveauté de PHP 7 réside dans son moteur. Cette version est presque deux fois plus rapide que la dernière (PHP 5.6) et elle consomme deux fois moins de mémoire. Une aubaine pour accélérer et optimiser votre blog

Si vous ne souhaitez pas mettre les mains dans le cambouis et vous concentrez sur le contenu de votre blog, il existe des plateformes pour créer un site web, comme Wix par exemple, la plus connue et la plus complète.

Wix est un logiciel pour créer un site web, simple d’utilisation et très complet. Il vous propose de nombreux templates très soignés pour tout type de site, du simple blog personnel à une véritable boutique en ligne pour les professionnels.

Wix offre plusieurs avantages comme :

  • Une bibliothèque de template riche pour tous les blogs.
  • Une interface d’édition de template WYSIWYG, très facile à prendre en main grâce au glisser-déposer.
  • Une bibliothèque d’applications (App Market) l’équivalent des plugins sous WordPress, qui contient plus de 200 applications (formulaires, live chat, intégration des réseaux sociaux, gallérie d’images, …).
  • Optimiser pour le SEO.
  • Une interface WixStore dédié à l’ecommerce avec de nombreuses fonctionnalités comme la gestion d’un catalogue, des fiches produits, des codes de réduction, de la livraison, de la TVA, …
  • Une capacité d’innovation permanente avec Wix ADI (fonction d’intelligence artificielle pour créer votre premier site), la possibilité d’importer des polices de caractères, Wix Video permet d’importer des vidéos sur votre site depuis des plateforme comme Facebook, Youtube, Vimeo, …

 

Pour finir, l’offre Wix s’article autour de 6 formules :

  • Wix version gratuite : Toutes les fonctionnalités principales, hébergement gratuit, mais pas de nom de domaine et un bandeau de publicité Wix présent sur les pages de votre site.
  • Wix Connect Domain : Possibilité de connecter son propre nom de domaine. Stockage limité à 500Mo et bande passante 1 Go. Encore des pubs Wix.
  • Wix Combo : pour les particuliers, 1 nom de domaine offert. Stockage limité à 3Go et bande passante 2Go. Suppression des publicités.
  • Wix Unlimited : pour les entrepreneurs et indépendants, 1 nom de domaine offert. Stockage limité à 10Go et bande passante illimitée. Suppression des publicités.
  • Wix eCommerce : pour les petites entreprises, 1 nom de domaine offert. Stockage limité à 20Go et bande passante illimitée. Possibilité de vendre des produits en ligne. Suppression des publicités.
  • Wix VIP : En plus des fonctionnalités des packs précédents, 10 campagnes emails / mois et possibilité de bénéficier gratuitement de l’avis d’un professionnel sur votre site.

Wix s’est bien amélioré depuis ces débuts en innovant sans cesse et en proposant aux utilisateurs les fonctionnalités de base pour débuter sur le web. Il faut noter que l’offre eCommerce est vraiment pratique pour monter rapidement sa boutique sur Internet et se concentrer sur la vente de ses produits.

Changer de version de PHP avec Cpanel.

Changer de version de PHP n’est pas anodin et vous pouvez bloquer votre blog. Et j’en fais l’amer expérience.

Les raisons d’un blocage peuvent être nombreuses :

  • extension non compatible
  • code PHP obsolète ou code maison mal fait (ce qui a été mon cas pour ma page de statistiques)
  • thème mal codé ou non mis à jour

Aujourd’hui tous les hébergeurs sérieux, proposent dans leur panel d’administration la possibilité de changer de version PHP. Voyons comment faire avec un hébergement chez O2switch.

Connectez-vous sur votre compte Cpanel, vous devez arriver sur cette interface :

Ensuite descendre jusqu’à l’onglet Logiciel et cliquer sur Sélectionner une version de PHP.

Ensuite dans la liste sélectionner 7.0. Si vous voyez la ligne native (7.0) cela veut dire que c’est la version de base fournie actuellement par votre hébergeur et il est impossible de modifier des paramètres.

Astuce!!! Si votre migration se passe mal, vous pouvez revenir à la version Native ou à une version moins récente en sélectionnant le numéro de version dans la liste.

  • 1: Sélectionner votre version de PHP à utiliser sur votre blog. La ligne Native vous indique la version actuelle de PHP tournant sur votre hébergement. Il est impossible de modifier des paramètres.
  • 2: Une fois que vous avez sélectionné une version de PHP, il faudra sélectionner les modules qui vont bien. Voici ceux que j’utilise bcmath, dom, fileinfo, gd, imap, intl, json, mbstring, mcrypt, mysqlnd, nd_mysqli, pdo, pdo_mysql, pdo_sqlite, phar, soap, tidy, wddx, xmlreader, xmlrpc, xmlwriter, xsl, zip. Attention de ne pas oublier des extensions importantes comme mysql par exemple car votre blog ne fonctionnerait plus. Cliquer sur Enregistrer.
  • 3: Cliquer sur Set as current pour définir cette version, comme version par défaut.
  • 4: Sur les version que vous modifiez, vous pouvez aussi modifier certains paramètres du php.ini en cliquant sur Switch to PHP Options. Vous pouvez ajuster certains paramètres en fonction de vos besoins

Tester son blog suite au passage à PHP7.

Maintenant que vous avez basculé votre blog en PHP7, tester tout votre blog comme les pages spécifiques où vous avez codé des instructions en PHP par exemple : les pages de statistiques, le formulaire de contact ou bien encore vos extensions.

Vous pouvez regarder si la mise en page de votre blog est bien respectée. Pour cela une seule méthode il faut parcourir votre blog comme un utilisateur lambda et vérifier que tout s’affiche correctement, notamment les pages personnalisées comme les pages de stats ou le formulaire de contact.

Pour ma part, j’ai eu une erreur dans ma page de statistiques qui s’affichait complètement blanche.

Je récupère en PHP quelques éléments de l’utilisateur via ce code :

<?php

include_once ('/home/quicktut/public_html/geoip/geoipcity.inc'); 
include_once ('/home/quicktut/public_html/geoip/geoipregionvars.php');

$gi = geoip_open('/home/quicktut/public_html/geoip/GeoLiteCity.dat', GEOIP_STANDARD); 
$record = geoip_record_by_addr($gi,$_SERVER['REMOTE_ADDR']);

$user_agent = $_SERVER['HTTP_USER_AGENT']; 
$ip = $_SERVER['REMOTE_ADDR']; 
$url = $_SERVER['HTTP_REFERER']; 
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); 
$pays = $record->country_name;
$langs=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$var_resol=resolution();

if (preg_match ("/Win/", getenv("HTTP_USER_AGENT")))
$os = "Windows";
elseif ((preg_match ("/Mac/", getenv("HTTP_USER_AGENT"))) || (preg_match ("/PPC/", getenv("HTTP_USER_AGENT"))))
$os = "Mac";
elseif (preg_match ("/Linux/", getenv("HTTP_USER_AGENT")))
$os = "Linux";
elseif (preg_match ("/FreeBSD/", getenv("HTTP_USER_AGENT")))
$os = "FreeBSD";
elseif (preg_match ("/SunOS/", getenv("HTTP_USER_AGENT")))
$os = "SunOS";
elseif (preg_match ("/IRIX/", getenv("HTTP_USER_AGENT")))
$os = "IRIX";
elseif (preg_match ("/BeOS/", getenv("HTTP_USER_AGENT")))
$os = "BeOS";
elseif (preg_match ("/OS/2/", getenv("HTTP_USER_AGENT")))
$os = "OS/2";
elseif (preg_match ("/AIX/", getenv("HTTP_USER_AGENT")))
$os = "AIX";
else
$os = "Autre";

echo " Votre ip publique est : <strong>$ip</strong>.";
echo "<br>";
echo " Votre pays de provenance est : <strong>$pays</strong>.";
echo "<br>";
echo " Votre host est : <strong>$hostname</strong>.";
echo "<br>";
echo " Votre OS est : <strong>$os</strong>.\n";
echo "<br>";
echo "Votre langue principale est: <strong>$langs[0]</strong>.";
echo "<br>";
echo "Votre résolution actuelle est : <strong>$var_resol</strong>.";
echo "<br>";
echo "Votre navigateur actuel est : <strong>$user_agent</strong>.";
echo "<br>";
echo "Votre URL de provenance est : <strong>$url</strong>.";

?>

L’erreur venait de la commande ereg qui n’existe plus en PHP7 et qui doit/peut être remplacé par la commande preg_match. Ces commandes permettent de rechercher une chaine dans une chaine de caractères.

Voici donc mon nouveau code pour récupérer des informations sur mes visiteurs compatible PHP7 avec la commande preg_match :

<?php

include_once ('/home/quicktut/public_html/geoip/geoipcity.inc'); 
include_once ('/home/quicktut/public_html/geoip/geoipregionvars.php');

$gi = geoip_open('/home/quicktut/public_html/geoip/GeoLiteCity.dat', GEOIP_STANDARD); 
$record = geoip_record_by_addr($gi,$_SERVER['REMOTE_ADDR']);

$user_agent = $_SERVER['HTTP_USER_AGENT']; 
$ip = $_SERVER['REMOTE_ADDR']; 
$url = $_SERVER['HTTP_REFERER']; 
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); 
$pays = $record->country_name;
$langs=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$var_resol=resolution();

if (preg_match ("/Win/", getenv("HTTP_USER_AGENT")))
$os = "Windows";
elseif ((preg_match ("/Mac/", getenv("HTTP_USER_AGENT"))) || (preg_match ("/PPC/", getenv("HTTP_USER_AGENT"))))
$os = "Mac";
elseif (preg_match ("/Linux/", getenv("HTTP_USER_AGENT")))
$os = "Linux";
elseif (preg_match ("/FreeBSD/", getenv("HTTP_USER_AGENT")))
$os = "FreeBSD";
elseif (preg_match ("/SunOS/", getenv("HTTP_USER_AGENT")))
$os = "SunOS";
elseif (preg_match ("/IRIX/", getenv("HTTP_USER_AGENT")))
$os = "IRIX";
elseif (preg_match ("/BeOS/", getenv("HTTP_USER_AGENT")))
$os = "BeOS";
elseif (preg_match ("/OS/2/", getenv("HTTP_USER_AGENT")))
$os = "OS/2";
elseif (preg_match ("/AIX/", getenv("HTTP_USER_AGENT")))
$os = "AIX";
else
$os = "Autre";

echo " Votre ip publique est : <strong>$ip</strong>.";
echo "<br>";
echo " Votre pays de provenance est : <strong>$pays</strong>.";
echo "<br>";
echo " Votre host est : <strong>$hostname</strong>.";
echo "<br>";
echo " Votre OS est : <strong>$os</strong>.\n";
echo "<br>";
echo "Votre langue principale est: <strong>$langs[0]</strong>.";
echo "<br>";
echo "Votre résolution actuelle est : <strong>$var_resol</strong>.";
echo "<br>";
echo "Votre navigateur actuel est : <strong>$user_agent</strong>.";
echo "<br>";
echo "Votre URL de provenance est : <strong>$url</strong>.";

?>

Installer l’extension Insert PHP Code Snippet.

J’en ai aussi profité pour remplacer l’extension Exec_PHP, plus mise à jour depuis longtemps par Insert PHP Code Snippet. Cette extension fonctionne bien avec la dernière version de WordPress. De plus elle utilise des shortcode pour insérer votre code PHP ou vous voulez (Articles, Pages, Widget, …). Il est alors inutile de saisir votre code en mode texte comme je faisais avant.

Maintenant si vous souhaitez intégrer du code PHP dans un article, c’est très simple, il suffit de rentrer le shortcode correspondant au code, voici par exemple le shortcode que j’appelle pour afficher les informations de mes visiteurs le tout en mode Visuel:

Son fonctionnement est très simple, après l’avoir installé sur votre blog WordPress, cliquer sur XYZ PHP Code puis sur PHPCode Snippets.

Vous n’avez plus qu’a cliquer sur Add new PHP Code Snippet et saisir votre code PHP. C’est tout.

  • 1: Bouton pour ajouter un code PHP à insérer dans les articles, pages, …
  • 2: Nom du shortcode, contenant votre code PHP à insérer dans votre page, article,…
  • 3: Etat de votre shortcode : Actif, Inactif
  • 4: Vous avez la possibilité de désactiver l’exécution de votre code, sur votre blog en cliquant sur le bouton Pause. Ce la peut être pratique si votre code à un problème, comme le passage d’une version à une autre de PHP, par exemple.
  • 5: Cliquer sur le bouton Edition, pour modifier votre code.
  • 6: Cliquer sur la corbeille pour supprimer votre code.

Voilà à quoi ressemble, la fenêtre d’édition du code PHP :

Attention!!! Il faudra vérifier dans votre PHP.ini soit directement dans votre fichier si vous êtes en hébergement dédié, soit via CPanel si vous êtes en hébergement mutualisé, si la directive output_buffering est bien activé, sinon vos scripts s’afficheront toujours en haut de votre page et ne respecteront pas votre mise en page.

Tout comme la migration en HTTPS de votre blog, le passage en PHP7 ne doit pas être pris à la légère car elle peut bloquer l’affichage de votre blog où engendrer des pannes qui peuvent être pénalisante pour votre site, comme votre formulaire de contact. Il est donc primordial de tester en profondeur votre blog après être passé en PHP7.

That’s All.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *