AtelierPHP - Chapitre 1 : Installation, Environnement

Qu'est-ce que le PHP ?

PHP signifiait à l'origine Personnal Home Page, on considère maintenant qu'il veut dire PHP Hypertext Preprocessor.

Définition d'après DicoFR.com : Langage permettant la création de pages Web au contenu dynamique, analogue à la technologie ASP de Microsoft, mais provenant des environnements UNIX-Apache et libre de droits.

  • Remarque 1: Un contenu dynamique est un contenu qui n'est pas statique. Le html permet de créer des pages statiques, ce qui veut dire qu'il s'agit d'un simple affichage sans possibilité d'intéragir. L'intérêt du langage PHP est d'étendre les possibilités d'une page Internet en ajoutant des éléments de programmation.

  • Remarque 2: PHP n'est donc pas le seul langage qui permet de créer des pages Web.

  • Remarque 3: Du point de vu des licences, il existe deux types de logiciel. Les logiciels proporiétaires, ils appartiennent à leurs concepteurs. Les logiciels libres qui appartiennent aussi bien aux concepteurs qu'aux utilisateurs.

  • Remarque 4: Chacun peut installer et utiliser PHP, pour connaître le détail de la licence de PHP, rendez-vous sur le site www.php.net.

Plus précisément, PHP est un langage de script dont le module d'interprétation s'utilise avec un serveur HTTP. Un serveur HTTP est un logiciel qui met à disposition des fichiers aux utilisateurs d'un réseau. Pour en savoir plus sur ces serveurs, de nombreuses documentations sont disponibles sur Internet :

  • Wikipédia - Serveur web

  • François PLANQUE

  • Dicodunet

  • Remarque 5: Le serveur http que nous vous proposons d'utiliser s'appelle Apache, chacun peut l'installer et l'utiliser, pour connaître le détail de la licence d'Apache, rendez-vous sur le site www.apache.org.

Pour en revenir à PHP, sachez que sa syntaxe est empruntée aux langages C, Java et Perl, et qu'elle est facile à apprendre. Le but de ce langage est de permettre aux développeurs web d'écrire des pages dynamiques rapidement et facilement.

Il permet par exemple de récupérer les données de formulaires et de les traiter, d'accèder à des bases de données etc. cela grâce à de nombreuses fonctions intégrées.

  • Remarque 6: La notion de fonction intégrée sera étudiée dans le Chapitre 6 "Les fonctions". Une fonction est un sous-programme du programme principal, elle a l'avantage de pouvoir être utilisée plusieurs fois en l'appellant par son nom, ce qui évite de réécrire ce petit programme utile. Le fait qu'elle soit intégrée veut dire que cette fonction est fournie avec PHP lors de son installation.

Des extensions au langage (hors du cadre de ce cours) permettent de gérer les fichiers XML, PDF... Dans le cadre de notre Atelier, PHP n'est pas un langage 'compilé' mais un langage de script qui s'exécute 'à la volée' sur le serveur.

  • Remarque 7: Une extension, comme son nom l'indique, permet d'ajouter des fonctionnalités au langage. Un langage est compilé quand il a été transformé par programme en langage uniquement compréhensible par un ordinateur.

Si tout ce qui vient d'être dit vous semble bien compliqué, ne vous inquiétez pas. Cette introduction deviendra plus claire pour vous quand vous aurez abordé les premiers chapitres et quand vous aurez une meilleure connaissancs de la programmation en informatique, ce qui est l'objectif de l'AtelierPHP. Par contre, pour suivre l'apprentissage vous devez connaître les bases du HTML.

Architecture client/serveur dans le cas d'une page PHP sur Internet

Vous vous demandez comment une page Html ou PHP peut bien apparaître sur votre écran ? voici un schéma dans lequel vous êtes le "client" et qui vous l'explique :

Architecture client/serveur

  1. L'internaute saisit l'adresse internet d'une page PHP dans le navigateur, par exemple : http://www.atelierphp.net/lesson_01_environnement/lesson_01.php
  2. Cette adresse est envoyée à un ordinateur appartenant de votre fournisseur d'accès à Internet (par la ligne téléphonique, ou fibre optique, ou cable réseau). Elle est analysée par les équipements d'entrée pour localiser le serveur sur lequel se trouve la page demandée
  3. Le serveur reçoit et analyse la page
  4. Les parties entre balises PHP (<?php ..... ?>) sont envoyées au module PHP pour y être exécutées
  5. Les instructions faisant référence aux bases de donnéees sont transférées au module base de données
  6. Le module base de données renvoie les données
  7. Le module PHP intègre ces données, et renvoie au serveur HTTP le code HTML généré
  8. Les données sont renvoyées par le serveur
  9. Puis acheminées jusqu'au le poste client, la page est affichée

Installation "en local" pour l'apprentissage ou "en production"

L'utilisation habituelle du modèle client/serveur est décrite ci-dessus, cependant dans l'apprentissage du langage PHP le serveur et le client seront sur un seul et même ordinateur sans passer par Internet. On peut dire dans ce cas là que l'on travaille "en local". Dans notre Atelier on vous propose de travailler "en local", l'installation vous permettra d'avoir votre propre serveur. Pourquoi ? Parce que c'est le plus simple pour apprendre et visualiser son travail. Vous devez savoir que le serveur local s'appellera "localhost" par défaut.

Dans un deuxième temps, quand vous le souhaiterez, vous aurez la possibilité de transférer vos fichiers PHP vers un serveur Internet "en production". La mise en place et le paramétrage d'un tel serveur est souvent réalisé par l'herbergeur lui-même. Notre Atelier ne vous indique pas comment faire, sachez juste que c'est l'étape suivante à votre apprentissage. Pour l'instant vous serez le seul à voir vos pages, elles ne seront pas accessibles sur le Web.

Remarque 1 : L'hébergeur est le prestataire auquel vous demandez de vous allouer un espace mémoire sur un ordinateur serveur accessible 24 heures sur 24 pour que les fichiers qui s'y trouvent soient disponibles par les internautes.

Avant l'installation

  • Rappel: Nous faisons une installation en "local", le serveur sera sur votre ordinateur, il a pour nom "localhost".

Dans le cadre de notre installation, les principaux points à connaître seront les suivants :

  • Où vont se trouver, physiquement, les fichiers et dossiers du site ? Par défaut, le dossier du site se nomme www ou encore html, l'emplacement de ce dossier est variable suivant l'installation et le système d'exploitation que vous utilisez. Exemples : GNU/Linux /var/www/html/, Windows c:/wamp/www/. Vous pouvez mettre vos fichiers directement dans le dossier html ou www, ou bien créer un dossier de travail nommé mon_site (le nom que vous voulez), alors on a les chemins physiques suivants : GNU/Linux /var/www/html/mon_site/, Windows c:/wamp/www/mon_site/.

  • Comment voir votre site avec le serveur ? A l'aide de votre navigateur, cette fois, l'adresse est toujours la même, à savoir : http://localhost/mon_site/ (mon_site ou le nom que vous voulez) et cela quel que soit votre installation et votre système d'exploitation.

  • Il existe un fichier par défaut ou prioritaire que l'on nomme index.php, ce fichier s'executera lorsque l'on indique seulement le serveur et le répertoire dans le navigateur. L'avantage est de simplifier les adresses, en effet, si l'on tape dans la barre d'adresse http://localhost/mon_site/ , cela est suffisant, il est inutile d'indiquer http://localhost/mon_site/index.php.

  • Remarque 1: Attention, le fichier index.php peut aussi avoir un homonyne index.html, suivant les paramétrages du serveur l'un est prioritaire sur l'autre.

  • Remarque 2: Lorsque vous tapez http://localhost/ dans votre navigateur, la page d'accueil du serveur doit apparaître. En effet, un fichier index.html doit exister dans le dossier /var/www/html/ ou /wamp/www/www et c'est ce fichier qui apparaît.

Installation sous Windows de Apache/PHP/MySQL avec WampServer

La solution que nous vous conseillons fortement est l'installation d'Apache/PHP/MySQL à l'aide du "package" WampServer, en effet cette solution installera tout ce dont vous avez besoin pour commencer sans vous soucier trop des différents paramétrages.

Pour vous procurer WampServer, rendez-vous sur leur site et télécharger la dernière version stable : Site de WampServer. Ce "package" comprend : Apache + PHP + MySQL + PHPMyAdmin + SQLiteManager Apache désigne le serveur http, PHP le module PHP, MySQL le gestionnaire de bases de données (voir schéma de l'architecture client/serveur plus haut). PHPMyAdmin et SQLiteManager sont des logiciels utilitaires optionnels mais utiles, nous le verrons plus tard. Les avantages de cette distribution sont les suivants :

  • Très grande facilité d'installation, les 5 composants sont installés en même temps
  • Dès qu'une nouvelle version d'Apache, PHP ou MySQL sort, elle est intégrée au package à télécharger. Pour être à jour il faut donc télécharger et installer la dernière version et l'installer
  • Ces composants étant déjà paramétrés pour fonctionner ensemble, vous disposez d'un système prêt à être utilisé dès la fin de l'installation.

Lors du déroulement de l'installation, très peu de questions sont posées :

  • "DocumentRoot" : c'est l'emplacement du site sur le PC (voir ci-dessus) par défaut on a : c:/wamp/www

  • "homepage" : est l'emplacement dont il est question ci-dessus, si le fichier index.php existait déjà, il va être écrasé et remplacé par la page d'accueil de Apache, pour la première installation il n'y a pas à s'en inquiéter

  • Remarque 1: Voici deux paramétrages de base du serveur Apache2 (fichier apache2.conf) :

    • Pour changer le répertoire du site, rechercher dans apache2.conf à changer en deux endroits au moins au niveau de : DocumentRoot /...
    • Pour changer le fichiers par défaut, rechercher dans apache2.conf
    • DirectoryIndex index.php, index.html...
  • Remarque 2: IIS est un serveur fourni par Microsoft sur certain systèmes d'explotations (Windows server) nous ne détaillerons pas ici sa mise en oeuvre.

  • Remarque 3: Au fil des ateliers quelques paramétrages vont néanmoins s'avérer nécessaires, voici la liste de ceux que vous pourriez avoir à changer :

  • Fonctionnement de la librairie GD (gestion des images et graphisme)

  • Serveur POP pour que le serveur puisse envoyer du courrier

  • La gestion des sessions

Installation sous GNU/Linux Ubuntu de Apache/PHP/MySQL

Pour les heureux possesseurs de GNU/Linux Ubuntu, la procédure d'installation est détaillée sur le site ubuntu-fr.org : Installer LAMP sous UBUNTU. Cette page d'aide vous propose l'installation de LAMP (Linux + Apache + MySQL + PHP) si vous utilisez GNU/Linux Ubuntu un système libre. Sur ce type de système, vous choississez des "paquets" à installer dans les "dépots".

Test du serveur HTTP, connexion à MySQL

Sous Windows, le nom du serveur est celui de la machine. Si votre machine s'appelle "abcde", que vous tapiez "abcde" ou "localhost" dans la barre d'adresse de votre navigateur, vous obtiendrez la même chose, à savoir la page d'accueil de votre serveur.

  • Pour le serveur Apache, taper "localhost", en général la page d'accueil contient un lien vers localhost/server-info, qui donne toutes les informations sur le serveur

Dans tous les cas si le serveur HTTP fontionne sur votre machine, en tapant "http://localhost", vous devez avoir la page de garde du serveur. De plus, lorsque WampServer est lancé, vous devez avoir un icone dans la barre de tache (en bas à droite), en forme de demi-cercle. En cliquant une fois dessus, vous accédez à un panneau de controle très pratique vous permettant de voir l'état des serveurs Apache et MySQL.

Si Apache ne fonctionne pas (sous Windows):

  • Si vous utilisez Skype, allez dans outils, options, généralités, paramètres de connexion et des proxys, décocher "utiliser les ports 80 et 443"
  • Si vous avez un autre serveur http, comme IIS, changez son port pour 81 par exemple, mais si vous ne l'utilisez pas, désinstallez-le.
  • Au moyen d'un site internet comme (zebulon.fr) regarder si le port 80 est utilisé quand Apache ne tourne pas
  • Désinstaller/Réinstaller WampServer dans son dossier par défaut (c:/wamp/...)
  • Attention au pare-feu Windows, normalement à la fin de l'installation, si vous avez le pare-feu, vous devez avoir une alerte vous proposant de débloquer Apache. Cliquer sur "débloquer"
  • Si vous allez dans le paramétrage du pare-feu Windows, (panneau de configuration, pare-feu, exceptions), Apache doit figurer dans les exceptions, sinon vous devez le rajouter
  • Si Apache ne démarre pas automatiquement au démarrage de Windows, c'est peut-être qu'un ancien service Apache est présent
  • Il faut aller dans 'paramètres', 'panneau de configuration', 'outils d'administration', 'services', clic droit sur 'wampapache' (ou wampmysql si c'est mysql qui ne démarre pas), 'propriétés', onglet 'general', 'type de démarrage', mettre 'automatique', puis 'appliquer'
  • Rendez-vous sur le site de Site de WampServer, consulter la FAQ

Une fois que votre serveur fonctionne, il vous faut créer un sous-répertoire du répertoire de base du serveur pour y installer votre site. Créer un fichier fichier.html et enregistrer le dans le dossier nouvellement créé, par exemple "mon_site". Maintenant, en tapant http://localhost/mon_site/fichier.html vous devez voir s'afficher le contenu de votre fichier

Connexion à MySQL

La plupart du temps, si vous l'avez installé pour une installation locale, les paramètres de connexion seront :

Hostname : "localhost"
User name : "root"
Password : "" (auncun mot de passe)

Vous pourrez tester réellement le bon fonctionnement MySQL au cours de le Chapitre 9 "Mysql première partie : introduction". Si tout se passe mal, vous pouvez consulter le site phpconcept.net, ou d'autres parmi ceux dont les liens figurent sur notre page de liens "Liens d'aide au développement en PHP"

Les versions de PHP

La version actuelle du module serveur est la 7.4, vous pouvez consulter le site officiel : php.net. L'extension d'un fichier PHP est .php, cependant on peut trouver les extensions .php5, .php7, chacune correspond à une version de PHP. Vous aurez l'occasion d'en savoir plus sur PHP7 dans le Chapitre 8 "Classes et objets".

  • Remarque 1: l'extension d'un fichier est une information sur le type de fichier elle est séparée du nom par un point. Exemples : mon_fichier.php, mon_fichier.html, ces deux fichiers sont différents même si ils ont le même nom, le premier contient une code php, le second un code html.

Editeurs conseillés

L'éditeur est une sorte de traitement de texte spécialement conçu pour l'édition de code source de programmation. C'est avec lui que vous passerez beaucoup d'heures, alors choisissez celui qui vous convient le mieux.

  • JEdit sans doute un des meilleurs, mais en anglais
  • PHPEdit l'éditeur officiel PHP
  • PSPad
  • Geany s'impose pour les linuxiens

Logiciels FTP conseillés

Le choix du logiciel FTP est important, c'est lui qui va vous permettre le transfert des fichiers de votre PC sur votre site internet et vice-versa, dans le cas d'un site sur Internet. Cependant, si vous travaillez en local, vous n'avez pas besoin de logiciel ftp.

  • Filezilla (Windows)

  • gFTP (GNU/Linux)

  • Smart FTP (Windows)

  • Remarque 1: Pour ceux qui utilisent Firefox, une extension de Firefox existe qui gère assez bien le FTP (fonctionne sous GNU/Linux)

  • Remarque 2: Un serveur FTP est aussi inclus dans l'éditeur PSPad

Hello world ! premier programme en PHP

  • Rappel : Connaître les bases du HTML est indispensable pour suivre l'apprentissage.

Premiers principes de base:

  • Le code PHP s'insère dans le code HTML au moyen des balises (ou tags en anglais) à utiliser pour tout programme PHP "<?php" au début du script et "?>" à la fin.
  • Toute instruction (sauf les structures de contrôle et sauf la dernière ligne de code) se termine par un;
  • Il est recommandé de mettre des commentaires dans un script PHP. Ces commentaires n'ont aucune influence sur le déroulement du script et permettent de s'y retrouver facilement. Ils peuvent s'inscrire de trois façons différentes :

<?php

// première façon pour une ligne de commentaires :
// Chaque ligne de commentaires doit commencer par // (et se termine par un retour-chariot)

/* seconde façon pour un paragraphe,
On commence par /* au début de la première ligne on tremine la fin de la dernière ligne par */

<<<SALUT
Troisième façon de mettre des commentaires :
ici mes commentaires à la façon "here docs"_on commence par trois chevrons, ensuite le même mot doit se retrouver au début et à la fin et on termine par un point-virgule, si l'on veut afficher des commentaires à l'écran, on peut aussi dans ce cas mettre un "here docs" dans une variable , ceci permet de mettre des caractères spéciaux dans la variable_guillemets simples et doubles... SALUT;

?>

Applications :

  • Tester le fonctionnement de PHP, saisir dans l'éditeur <?php phpinfo(); ?>
    Exécution de la fonction phpinfo()
    Nom du fichier_exercises_01/lesson_01_c.php

  • Le classique "Hello world !"
    Hello world !
    Nom du fichier_exercises_01/lesson_01_h.php
    Pour aller plus loin_faire fonctionner un HERE DOCS sur une source HTML
    Les commentaires en PHP , heredocs
    Nom du fichier_exercises_01/lesson_01_e.php

Sensibilité à la casse, second programme en PHP

Un nom de variable est toujours précédé du symbole $ (dollar).
En php, en règle générale :

  • Les noms de variables sont sensibles à la casse
  • Les autres éléments du langage (fonctions, instructions...) ne le sont pas

Très important : la sensibilité à la casse des noms de fichiers dépend du système d'exploitation, hors comme sous GNU/Linux (destination finale de la plupart des fichiers php, vu que la plupart des serveurs Web sont des serveurs Linux) les noms de fichier sont sensibles à la casse, il est fortement recommandé de respecter la casse dans :

  • Tous les liens HTML
  • Les noms des tables MySQL (qui sont en fait des fichiers)

Exercice sur la sensibilité à la casse
Nom du fichier_exercises_01/lesson_01_c.php

Contrat Creative Commons
AtelierPHP par JMP est mis à disposition selon les termes de la Licence Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 2.0 France.