Veuillez noter que je publie maintenant mes articles sur Apical, votre plateforme d'apprentissage.

Archives: MySQL

  • Mise en ligne d’un site WordPress

    Accéder à « Mise en ligne d’un site WordPress »
    Pour créer un site WordPress, certaines personnes installent une coquille WordPress directement en ligne. Il y apportent ensuite les ajustements nécessaires et les résultats sont visibles immédiatement.  Pourtant, il est plus sécuritaire de faire un développement en local avec un environnement comme EasyPHP puis de procéder à la mise en ligne une fois que le site est complètement fonctionnel et bien testé. Voici donc comment effectuer la mise en ligne d'un site WordPress qui a été développé localement sur votre poste de travail.

    Base de données

    WordPress utilise une base de données MySQL. Pour mettre en ligne cette base de données, certains hébergeurs donnent accès à une interface phpMyAdmin. D'autres hébergeurs vous demandent de téléverser un script SQL et se chargent de mettre la base de données en place. Si vous travaillez sur votre propre serveur, vous pourrez même travailler directement à la ligne de commande si vous le désirez. L'hébergeur fournit généralement une interface permettant de créer un usager MySQL n'ayant des droit que pour la base de données de votre site Web. Si ce n'est pas le cas, pensez à changer d'hébergeur car une faille sur un autre site ouvrira la porte vers votre BD...

    Ajustement du script SQL

    Puisque WordPress enregistre les URL absolus dans la BD (ex : <img src="http://127.0.0.1/dossierdusite/wp-content/uploads/2016/10/logo.png" alt="Compagnie XYZ" />), vous devez commencer par ajuster le script SQL en remplaçant toutes les occurences de « http://127.0.0.1/dossierdusite » par « http://nomdedomaine.com ». Généralement, le fait de modifier l'URL du site fait en sorte que certaines configurations qui étaient faites sur le site local sont perdues une fois en ligne. Pour éviter ce problème, suivez les instructions données dans l'article « Pourquoi est-ce que je perds les personnalisations de mon thème lors de la mise en ligne ? »

    Ligne de commande

    Si vous avez accès à la ligne de commande sur le serveur, vous faites partie des chanceux ! Il vous sera possible d'importer une base de données à l'aide d'une seule commande. Vous devez cependant vous assurer que le script commence par faire un USE sur la base de données. À l'invite de commande sur le serveur, entrez la commande suivante :
    Fenêtre de commande DOS
    mysql -u usagermysql -p < nomscript.sql
    Attention : cette commande est une commande à entrer à l'invite de commande du système d'exploitation (fenêtre de commande DOS) et non à la ligne de commande MySQL.

    phpMyAdmin

    Si votre hébergeur vous donne accès à phpMyAdmin, vous pourrez l'utiliser pour manipuler votre base de données. 
    • Si la base de données n'existe pas, commencez par la créer à l'aide de l'interface fournie.
    • Assurez-vous que la BD soit sélectionnée.
    • Accédez à l'onglet SQL puis faites un copier-coller de votre script SQL.

    Prenez note que si le script SQL est long (ce qui est généralement le cas avec un BD WordPress), il peut y avoir un délai de quelques secondes entre le moment où vous copier votre script dans la fenêtre SQL et le moment où celui-ci apparaît.

    Ajustement du fichier wp-config.php

    Avant d'être copié sur le serveur, le fichier wp-config.php doit être ajusté. Les informations à entrer sont fournies par l'hébergeur. Les informations à modifier sont les suivantes :
    • define('DB_NAME', 'nomdelabd');
    • define('DB_USER', 'usagermysql');
    • define('DB_PASSWORD', 'motdepasse');
    • define('DB_HOST', 'nomhotemysql');

    Sécurité

    Si vous avez utilisé des outils de débogage pendant le développement, assurez-vous qu'ils ne génèrent pas d'information compromettante une fois en ligne. Vous devez apporter les ajustements suivants :
    • dans wp-config.php : define('WP_DEBUG', false);
    • détruire le fichier www\votresite\wp-content\debug.log
    • aucun fichier .sql ne doit être mis en ligne (ils devraient d'ailleurs tous être dans le dossier dev, qui ne sera pas copié sur le serveur)

    Référencement

    Avant de copier les fichiers sur le serveur, assurez-vous que le fichier robots.txt demande aux robots d'indexer votre site, à l'exception des fichiers et dossiers sensibles. Ex :
    Fichier robots.txt
    User-agent: * Disallow:  /wp-login.php Disallow: /wp-admin/ Disallow: /wp-includes/
    Si votre client ne souhaite pas que les images qu'il ajoute dans ses pages et ses articles soient indexées sur Google, vous pourriez également ajouter le dossier /wp-contents/uploads/ à cette liste.

    Copie des fichiers WordPress

    Ici encore, la façon de copier les fichiers chez l'hébergeur dépend des outils que l'hébergeur met à votre disposition. Certains fournissent les informations pour que vous accédiez à vos fichiers via un utilitaire FTP. D'autres fournissent un outil intégré.

    Fichiers à exclure

    Il est inutile, voir nuisible, de copier les fichiers suivants sur le serveur :
    • Si vous avez créé un dossier dev contenant différents fichiers utilisés lors du développement, il ne doit absolument pas être copié sur le serveur.
    • Seuls les thèmes et extensions effectivement utilisés doivent être mis en ligne.
    • Fichier license.txt
    • Fichier readme.html
    • Fichier wp-config-sample.php
    • Fichier debug.log
    • Si votre éditeur a créé des fichiers ou des dossiers de travail (ex : dossier .idea avec PhpStorm ou encore fichier .clpprj avec CodeLobster), ils ne doivent pas être copiés sur le serveur.

    Utilitaire FTP

    Il existe de nombreux utilitaires FTP gratuits. Si vous souhaitez mettre vos fichiers en ligne via FTP, vous devez en installer un à votre choix sur votre poste de travail. Une fois le client FTP installé, configurez-le à l'aide des informations fournies par votre hébergeur. Dans l'interface du client FTP, faites glisser tout le contenu du dossier de votre site Web (wp-admin, wp-content, etc.), à l'exception des fichiers mentionnés plus haut, vers le dossier suggéré par votre hébergeur (ex : public_html, htdocs, etc.).

    Outil intégré de gestion des fichiers

    Si votre hébergeur vous fournit un outil intégré, entrez les informations demandées pour vous authentifier puis copiez tout le contenu du dossier de votre site Web, à l'exception des fichiers mentionnés plus haut, vers le dossier suggéré par votre hébergeur. Certains outils permettent de transférer un seul fichier .zip et de le décompresser automatiquement. Attention, cependant, la taille d'un tel fichier est souvent limitée. On a vu des limites allant de 5 Mo sur certains hébergeurs à 200 Mo sur d'autres. Si votre site dépasse la taille maximale allouée, vous devrez créer plusieurs petits fichiers .zip. N'oubliez pas de supprimer le fichier .zip du serveur une fois l'opération complétée.

    Permissions sur les fichiers

    Téléversement d'images

    Si vous désirez téléverser des images à l'aide du panneau de configuration WordPress, vous devez vous assurer que le dossier wp-content/uploads dispose des droits d'écriture. Vous pouvez généralement réaliser cette opération à partir de l'interface fournie par votre hébergeur.

    Ajustements futurs à la feuille de style

    Une fois le site en ligne, il est possible de modifier la feuille de style directement dans le tableau de bord à l'aide du menu Apparence / Éditeur. Il faut cependant donner les droits d'écriture sur le fichier wp-content\themes\votretheme\style.css.

    Droits d'écriture sur d'autres dossiers

    Il est préférable de ne pas donner les droits d'écritures sur les autres fichiers et dossiers du site Web à moins d'avoir une raison valable de le faire. En effet, les hackers aiment bien trouver des endroits où déposer leurs fichiers malveillants. Ils le feront généralement à votre insu, sans même porter atteinte à votre site Web. Cependant, il pourraient publier des URL qui débutent par votre nom de domaine mais qui pointent vers des sites pornographiques ou autres. Ouch !
  • Les requêtes préparées pour prévenir certaines injections SQL

    Accéder à « Les requêtes préparées pour prévenir certaines »

    Lorsqu'une requête SQL doit utiliser une valeur tirée d'une variable, nous exposons notre base de données aux injections SQL. Il s'agit d'une technique utilisée par les « hackers » pour tenter d'obtenir des informations sensibles tirées de la base de données.

    Les variables utilisées dans la requête pourraient tirer leur valeur d'un formulaire Web ($_POST), d'un paramètre dans l'URL ($_GET), d'un cookie ($_COOKIE), etc. Donc, si nous ne prenons pas nos précautions, un utilisateur malveillant pourrait entrer comme valeur des caractères particuliers qui modifieraient le comportement de la requête. Il pourrait ainsi obtenir des accès sans connaître le mot de passe, modifier les données stockées dans la BD, etc.

    C'est pourquoi, lorsqu'une requête contient une valeur tirée d'une variable, nous utiliserons toujours des requêtes préparées, aussi appelées requêtes paramétrables, afin de protéger nos données contre les injections SQL.

    (suite…)
  • mysqli : la nouvelle technique pour travailler avec une base de données MySQL

    Accéder à « mysqli : la nouvelle technique pour travailler ave »

    Votre site Web devra fort probablement accéder à une base de données pour définir soit sa structure (ex : ses menus, ses configurations), soit son contenu (ex : le texte à afficher dans les pages Web, les usagers ayant droit de se connecter), soit les deux.

    Il existe plusieurs techniques pour accéder à la base de données et y exécuter des requêtes. Avant PHP 5.5.0, plusieurs programmeurs utilisaient mysql_connect() et les autres fonctions de l'extension mysql (voir l'article « Travailler avec une base de données MySQL »).

    Cette extensions est désormais obsolète. Les programmeurs avisés utilisent maintenant l'extension mysqli. Le i tient pour improved. Il s'agit donc d'une version améliorée de l'extension originale.

    (suite…)
  • Changer l’URL d’un site WordPress

    Accéder à « Changer l’URL d’un site WordPress »

    Lorsque vous publiez des articles dans votre site WordPress et que vous y ajoutez des images, l'URL absolu des images est encodé dans la base de données. Un déménagement de votre site, même après avoir modifié toutes les configurations requises, fera en sorte qu'aucune image ne sera affichée dans vos articles. Il faut donc apporter des modifications au contenu de votre BD.

    (suite…)
  • Comment choisir l’outil ou le langage pour développer un site Web ou une application Web ?

    Accéder à « Comment choisir l’outil ou le langage pour d »
    La première étape avant de débuter le développement Web est de déterminer quels outils et langages de programmation seront utilisés : ASP.NET ou PHP ? CMS ou développement à partir de zéro ? Architecture MVC ou pas ? PHP ou MySQL ? . Ces choix technologiques seront guidés par la nature du développement à effectuer (site Web vs application Web) de même que par les besoins du client et l'expertise de l'équipe de développement. (suite…)
  • Travailler avec une base de données MySQL

    Accéder à « Travailler avec une base de données MySQL »
    La majorité des sites Web utilisent une base de données. Et pour PHP, la solution naturelle est MySQL. Ce billet vous montrera les instructions PHP permettant de : [christianenotemiseajour]

    L'utilisation de mysql_connect(), qui est présentée ici, est obsolète. Vous devez désormais utiliser l'extension mysqli. Consultez l'article « mysqli : la nouvelle technique pour travailler avec une base de données MySQL » à ce sujet.

    [/christianenotemiseajour] (suite…)