Tutoriel PHP et Mysql:
Introduction

PHP et son inséparable Mysql sont aujourd'hui très répandus, le premier pour son potentiel en terme de programmation, le second comme accès aux bases de données.
Ce tutoriel a pour but de permettre aux amateurs de découvrir et d'apprendre à utiliser ces deux outils de façon simple. Pour ceux qui souhaiteraient poursuivre plus avant, je leur recommande d'utiliser directement la documentation de PHP et de Mysql, téléchargeable en français chez Nexen.

Plan du tutoriel
Installion d'un serveur local PHP/Mysql

La première chose à faire pour utiliser simplement PHP et Mysql est d'installer son propre seveur local afin de ne pas avoir à faire sans fin des transferts de son ordinateur vers le serveur.

Beaucoup sont rebutés face aux difficultés engendrées par l'installation d'un serveur surtout qu'il existe peu de documentation en français. Ne vous inquiétez pas, c'est très simple ! Les étapes qui suivent devraient vous permettre de le faire aisément.

Note : Lors de l'installation, séparez bien les chemins de chaque application comme ci-dessous :

Installation d'Apache
Installation :

Commencer par télécharger la dernière version d'Apache que vous trouverez dans la section HTML Server du site officiel. Attention ! Téléchargez uniquement le fichier .msi correspondant à la version pour Windows.

Une fois récupéré le fichier d'installation, double-cliquez dessus pour démarrer l'installation. Remplissez les formulaires comme indiqué, les informations demandées n'ayant que peu d'importance puisque votre serveur restera local.
Note : l'installation fonctionnera complètement et votre serveur sera accessible via Internet si vous êtes connecté. Il vous faut donc si vous possédez un nom de domaine et si vous désirez utiliser le serveur en ligne et non seulement en local, entrer les véritables informations. Celles-ci apparaîtrons sur les pages d'erreurs du serveur (erreur 404 par exemple).

Une fois l'installation terminée, Apache se lance automatiquement ainsi qu'une petite application qui vous fourni l'état du serveur. Double-cliquez sur l'icône près de l'horloge pour afficher le moniteur.

La fonction plus intéressante de ce moniteur est la fonction Services. Elle ouvre le gestionnaire de services de Windows que nous allons maintenant utiliser en lieu et place de ce moniteur. Cette application n'a guère d'autre utilité. Vous pouvez la fermer, cela n'influence pas le fonctionnement du serveur. Si vous souhaitez qu'elle ne se lance pas automatiquement au démarrage de Windows, supprimer le raccourci dans la section Démarrage du menu Démarrer.
Note : pour ouvrir directement le gestionnaire de services, faites un clic droit sur le poste de travail et cliquez sur Gérer puis allez dans la section Services.

Configuration :

Le gestionnaire de services indique tous ce qui fonctionne sous Windows actuellement. Vous devez donc y trouver Apache.
Arrêtez maintenant Apache en cliquant sur Arrêter.

Editer le fichier httpd.conf qui se trouve dans le répertoire conf d'Apache.
Recherchez DocumentRoot et entrez le chemin racine des documents qui seront accessibles depuis le serveur (par exemple DocumentRoot "D:\Sites Internet").
Attention ! Le chemin doit être placé entre " et les \ remplacé par des / afin qu'Apache trouve le chemin.

Rechercher <Directory suivit d'un chemin d'accès et remplacez celui-ci par celui utilisé pour DocumentRoot (par exemple <Directory "D:\Sites Internet">).
Attention ! Le chemin doit être placé entre " et les \ remplacé par des / afin qu'Apache trouve le chemin.

Relancez le serveur Apache pour vérifier sont fonctionnement. Si aucun message d'erreur n'apparait, vous pouvez tester votre installation en plaçant une page index.html dans le dossier DocumentRoot que vous avez défini, puis lancer votre navigateur Internet. Tapez l'adresse locahost (ou le nom de votre ordinateur, Windows redirigeant les appels vers Apache. Le nom de votre ordinateur est celui qui apparait dans les propriétés du poste de travail). Votre page doit normalement s'afficher.

Installer PHP
Installation :

L'installation de PHP est un peu plus compliquée que celle d'Apache. Comme pour ce dernier, commencer par télécharger PHP en choisissant bien la version installable pour Windows et Apache. Evitez les versions Beta, préférez-y les versions plus anciennes mais finalisées.

Vérifiez qu'Apache est bien arrêté (via le gestionnaire de services de Windows ou le moniteur d'Apache), puis dézippez PHP dans le répertoire où vous avez installez Apache (normalement Apache Group).

Créez dans le répertoire de PHP un dossier nommé tmp.
Copiez le fichier php5ts.dll dans le dossier System32 de Windows.
Copiez le fichier php.ini-recommended dans le répertoire de Windows puis renommez-le en php.ini.

Configuration de PHP (php.ini) :

Editez ensuite ce dernier afin de configurer PHP.

Modifiez d'abord la variable error_reporting et passez-la à la valeur E_ALL & ~E_NOTICE, afin d'afficher toutes les erreurs de script.

Si vous avez téléchargez la documentation PHP sur Nexen, affectez à la variable docref_root le chemin ou celle-ci se trouve. En cas d'erreur dans votre script, un lien apparaîtra qui vous ammènera directement à une explication de la fonction mal utilisée.

Recherchez maintenant la variable extension_dir et entrez après le = le dossier où se trouvent les extensions de PHP (par exemple "C:\Program Files\Apache Group\PHP 5.0.0\extensions"). Notez que ce dossier existe et contient déjà des extensions !
Attention ! Si votre chemin contient des espaces, mettez le entre " afin que PHP puisse le trouver.

Chercher register_globals et register_argc_argv et passez-les à on.

Terminez par l'activation des extensions :
Recherchez la liste des extensions (extension=) et enlevez les ; devant celle que vous souhaitez activer. Il vous faut au moins activer les suivantes pour avoir les fonctions de bases :

  • php_mysql.dll (gestion des bases de données MySQL depuis PHP 5)
  • php_bz2.dll (gestion du format de compression bzip)
  • php_dba.dll (système de base de données)
  • php_gd2.dll (bibliothèque graphique)
  • php_imap.dll
  • php_mbstring.dll (système de langues étrangères)
  • php_snmp.dll
  • php_sockets.dll
  • php_zip.dll (gestion du format de compresion zip)

Certaines extensions sont dites introuvable lors de la remise en route du serveur, c'est parce qu'elles nécessitent une ou plusieurs dll. Les plus utiles sont déjà dans le répertoire de PHP et doivent être copiées dans le répertoire system32 de Windows.


Attention ! N'écrasez pas des dll déjà existantes !
Configuration d'Apache pour PHP (httpd.conf) :

Editez de nouveau le fichier httpd.conf qui se trouve dans le répertoire conf d'Apache.

Ajouter à la liste des LoadModule la ligne suivante où [Répertoire de PHP] représente le nom du répertoire où se trouve PHP :
LoadModule php5_module "[Repertoire de PHP]/php5apache2.dll"
Vous pouvez utilisez la notation ../ pour remonter dans les répaertoires (par exemple LoadModule php5_module "../PHP 5.0.0/sapi/php5apache2.dll" va chercher le module dans C:\Program Files\Apache Group\PHP 5.0.0\sapi, C:\Program Files\Apache Group\Apache étant le répertoire où se trouve Apache).

Dans la section DirectoryIndex, ajoutez index.php afin qu'Apache sache qu'il doit lancer automatiquement les pages index.php si elle existe lorsqu'un accès à un répertoire est demandé. L'ordre dans la liste donne la priorité d'exécution (par exemple DirectoryIndex index.html index.html.var index.php donnera priorité à index.html plutôt qu'à index.php si les deux pages existent dans le même dossier).

Ajoutez la ligne AddType application/x-httpd-php .php .inc à la section AddType afin qu'Apache renvoie les pages à l'extension .php ou .inc (conseillé) au module PHP. Vous pouvez ajouter d'autres extension de fichier en complétant la liste.

Note : Essayez de configurer votre PHP comme celui qui recevra définitivement vos pages. Pour connaître la configuration du serveur de votre hébergeur, créer une page PHP contenant la ligne <? phpinfo() ?> et envoyez la sur le serveur de votre hébergeur. Exécutez cette page pour obtenir toutes les informations relatives à PHP. Cette page fonctionne aussi en local ce qui vous permet donc de comparer avec votre propre installation.

Pour tester votre installation relancez Apache. Si aucun message d'erreur n'apparait, c'est que votre serveur fonctionne. Dans le gestionnaire de services, la description après Apache2 doit avoir été complètée par la version de PHP installée. Pour terminer vos test effectuez la note précédente en local.

Installation de Mysql
Installation :

Télécharger la version installable de Mysql pour Window (comme toujours, évitez les versions beta).

Dézippez Mysql dans un répertoire temporaire puis lancer l'installation endouble-cliquant sur setup.exe. Suivez les étapes de l'installation par défaut.
Attention ! Le nom d'utilisateur (identifiant) et le mot de passe sont très important, gardez les soigneusement en mémoire car ils sont nécessaire au reste de la configuration.

Lancez ensuite l'application winmysqladmin.exe qui se trouve dans le répertoire bin de votre installation de Mysql. Le serveur Mysql s'ajoute alors automatiquement aux services de Windows et se gère comme Apache.

Configuration de Mysql :

Aller dans l'onglet my.ini Setup du moniteur et supprimer le # devant la ligne language. Modifier celle-ci pour qu'elle pointe sur le fichier de langue française afin que les messages d'erreur renvoyés par le serveur soit en français. (par exemple language=C:/Program Files/Apache Group/MySQL/share/french). Cliquez sur Save Modification pour enregistrer les paramètres. Inutile de toucher aux autre réglages, Mysql s'auto-configure tout seul au démarrage.

Cette application ne vous est plus utile. Comme pour le moniteur d'Apache, vous pouvez la fermer, le serveur continura à fonctionner. Si vous souhaitez qu'elle ne se lance pas au démarrage de Windows, suprimez le raccourci dans la section Démarrage du menu Démarrer.

Installation de PHPMyAdmin
Installation :
Téléchargez PHPMyAdmin et dézippez le paquet dans le répertoire DocumentRoot de votre serveur Apache. En effet, cette application n'est en faite qu'un site en PHP et ne dépend donc pas de votre système d'exploitation et doit être placé dans le dossier accessible par le serveur comme vos propres sites.
Configuration :

Vérifiez qu'Apache, PHP et Mysql fonctionnent puis, dans votre navigateur Internet, tapez l'URL d'accès à PHPMyAdmin (par exemple http://localhost/phpMyAdmin-2.5.6/). La page d'accueil doit apparaitre avec un message d'erreur vous prévenant que le serveur est accessible avec les mots de passes root.

Cliquez sur Privilèges puis Ajouter un utilisateur. Créer un nouvelle utilisateur avec l'identifiant utilisé pour installer Mysql ainsi que le même mot de passe et le nom de serveur % (tout serveur). Donnez lui tous les droits en cochant toutes les cases puis cliquez sur Exécuter.

Créer un deuxième utilisateur identique pour le serveur localhost (le privilège ne peut pas être activer dans ce cas).

Editer maintenant le fichier config.inc.php qui se trouve dans le répertoire d'installation de PHPMyAdmin. AFfectez la valeur cookie à la variable $cfg['Servers'][$i]['auth_type']. Entrez ensuite une phrase secrète quelconque dans la variable $cfg['blowfish_secret']. Celle-ci servira à chiffrer vos mots de passe dans les cookies.

Si vous avez téléchargez la documentation MySQL sur Nexen, affectez à la variable $cfg['MySQLManualBase'] le chemin ou celle-ci se trouve. L'aide sera alors disponible directement de PHPMyAdmin.

Retournez à l'accueil et cliquez sur Recharger MySQL afin que le serveur prennent en compte les nouveaux utilisateurs.
Il nous faut maintenant renseigné PHP de ces modifications.

Configuration de PHP pour Mysql et PHPMyAdmin (php.ini) :

Configuront maintenant PHP afin qu'il puisse dialoguer avec le serveur Mysql. Rééditez le fichier php.ini dans le dossier Windows.

Rechercher mysql.default_host et donnez lui l'URL du serveur Apache c'est à dire localhost. (vous pouvez aussi utilisez le nom de votre ordinateur, Windows redirigera alors les appels vers Apache. Le nom de votre ordinateur est celui qui apparait dans les propriétés du poste de travail).

Redémarrez Apache pour prendre en compte les modifications.

Retournez à l'accueil de PHPMyAdmin. Si vous obtenez une erreur d'accès, c'est que vous avez fait une erreur lors de la mise en place des mots de passe ou des utilisateurs. Repassez alors $cfg['Servers'][$i]['user'] en root dans config.inc.php et supprimez le mot de passe puis vérifiez vos utilisateurs.

Si aucune erreur n'apparait, vous pouvez retournez dans Privilèges et supprimer définitivement les utilisateurs autres que le votre.

Important ! Ne supprimez jamais la base mysql. Vous n'auriez plus qu'à réinstaller MySQL complètement.

Votre installation fonctionne maintenant presque complètement. Vous pouvez créer et supprimer des bases et gérer d'autres utilisateurs comme vous le souhaitez. Ceux-ci sont stockés dans la base mysql.

Complément d'installation pour PHPMyAdmin :
Si vous regardez attentivement, il existe encore une erreur de bases liées. Pour palier à ce manque il vous faut rajouter une base de données spéciale qui gèrera les liaisons entre les bases et vous permettra de créer des schémas de vos bases au format PDF.
Création de la base phpmyadmin :

Lancez une fenêtre SQL sous PHPMyAdmin en cliquant sur le lien en bas à gauche.
Entrez la commande suivante et exécutez :
CREATE DATABASE phpmyadmin;

Créez ensuite un utilisateur pma pour locahost avec la commande suivante :
GRANT SELECT,INSERT,UPDATE,DELETE ON phpmyadmin.* to 'pma'@localhost

Dans le fichier config.inc.php modifier $cfg['Servers'][$i]['pmadb'] pour le faire pointer sur phpmyadmin.

Création des tables de la base phpmyadmin :

Dans votre fenêtre SQL, sélectionnez la base phpmyadmin et exécutez la commande suivante :
CREATE TABLE `pma_bookmark` (
       id int(11) DEFAULT '0' NOT NULL auto_increment,
       dbase varchar(255) NOT NULL,
       user varchar(255) NOT NULL,
       label varchar(255) NOT NULL,
       query text NOT NULL,
       PRIMARY KEY (id)
     ) TYPE=MyISAM COMMENT='Bookmarks';

Entrez le nom de la table comme paramètre de $cfg['Servers'][$i]['bookmarktable'] dans le fichier config.inc.php.

Faites de même avec les commande suivantes :
CREATE TABLE `pma_relation` (
       `master_db` varchar(64) NOT NULL default '',
       `master_table` varchar(64) NOT NULL default '',
       `master_field` varchar(64) NOT NULL default '',
       `foreign_db` varchar(64) NOT NULL default '',
       `foreign_table` varchar(64) NOT NULL default '',
       `foreign_field` varchar(64) NOT NULL default '',
       PRIMARY KEY (`master_db`, `master_table`, `master_field`),
       KEY foreign_field (foreign_db, foreign_table)
     ) TYPE=MyISAM COMMENT='Relation table';

Entrez le nom de la table comme paramètre de $cfg['Servers'][$i]['relation'] dans le fichier config.inc.php.

CREATE TABLE `pma_table_info` (
       `db_name` varchar(64) NOT NULL default '',
       `table_name` varchar(64) NOT NULL default '',
       `display_field` varchar(64) NOT NULL default '',
       PRIMARY KEY (`db_name`, `table_name`)
     ) TYPE=MyISAM COMMENT='Table information for phpMyAdmin';

Entrez le nom de la table comme paramètre de $cfg['Servers'][$i]['table_info'] dans le fichier config.inc.php.

CREATE TABLE `pma_table_coords` (
       `db_name` varchar(64) NOT NULL default '',
       `table_name` varchar(64) NOT NULL default '',
       `pdf_page_number` int NOT NULL default '0',
       `x` float unsigned NOT NULL default '0',
       `y` float unsigned NOT NULL default '0',
       PRIMARY KEY (`db_name`, `table_name`, `pdf_page_number`)
     ) TYPE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output';

Entrez le nom de la table comme paramètre de $cfg['Servers'][$i]['table_coords'] dans le fichier config.inc.php.

CREATE TABLE `pma_pdf_pages` (
       `db_name` varchar(64) NOT NULL default '',
       `page_nr` int(10) unsigned NOT NULL auto_increment,
       `page_descr` varchar(50) NOT NULL default '',
       PRIMARY KEY (page_nr),
       KEY (db_name)
     ) TYPE=MyISAM COMMENT='PDF Relationpages for PMA';

Entrez le nom de la table comme paramètre de $cfg['Servers'][$i]['pdf_pages'] dans le fichier config.inc.php.

CREATE TABLE `pma_column_info` (
       id int(5) unsigned NOT NULL auto_increment,
       db_name varchar(64) NOT NULL default '',
       table_name varchar(64) NOT NULL default '',
       column_name varchar(64) NOT NULL default '',
       `comment` varchar(255) NOT NULL default '',
       mimetype varchar(255) NOT NULL default '',
       transformation varchar(255) NOT NULL default '',
       transformation_options varchar(255) NOT NULL default '',
       PRIMARY KEY (id),
       UNIQUE KEY db_name (db_name, table_name, column_name)
     ) TYPE=MyISAM COMMENT='Comments for Columns';

Entrez le nom de la table comme paramètre de $cfg['Servers'][$i]['column_info'] dans le fichier config.inc.php.

CREATE TABLE `pma_history` (
       `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
       `username` VARCHAR( 64 ) NOT NULL ,
       `db` VARCHAR( 64 ) NOT NULL ,
       `table` VARCHAR( 64 ) NOT NULL ,
       `timevalue` TIMESTAMP NOT NULL ,
       `sqlquery` TEXT NOT NULL ,
       PRIMARY KEY ( `id` ) ,
       INDEX ( `username` , `db` , `table` , `timevalue` )
       ) TYPE=MyISAM COMMENT='SQL history';

Entrez le nom de la table comme paramètre de $cfg['Servers'][$i]['history'] dans le fichier config.inc.php.

L'option Préparer le schéma en PDF est maintenant diponible au bas de la page d'accueil de chaque base.