Le Web du futur - 1re partie

Cet article est le premier d'une série consacrée au langage PHP3.

Nous considérerons que vous êtes déjà familiarisé avec le Web et que vous connaissez un minimum le langage HTML. Commençons donc aujourd'hui par une découverte du langage suivie de l'installation des différents programmes nécessaires à notre apprentissage.

Intro

Le temps des sites Web statiques écrits uniquement en HTML est dépassé. Aujourd'hui, les sites Web doivent être dynamiques. Un site Internet ne doit pas être comme un catalogue ou un magazine, son contenu doit changer continuellement pour pousser le visiteur à revenir le plus souvent possible. Aussi, il n'est pas évident ni agréable de modifier le contenu de son site à la main, surtout si des centaines d'informations doivent être changées chaque jour. De la même manière, il n'est pas non plus facile de personnaliser son site pour chaque visiteur, de lui permettre de s'exprimer.

Voilà donc les intérêts (parmi d'autres) d'un site Web dynamique.

PHP3

Il existe de nombreuses technologies pour réaliser cela. Alors, pourquoi utiliser PHP3 ?

Tout d'abord parce que son apprentissage est vraiment rapide, même si vous n'êtes pas un fin programmeur.

Le même code PHP3 fonctionnera identiquement avec différents serveurs Web et sur différents systèmes. PHP3 fonctionne sous Unix, Windows, WindowsNT, Macintosh.

PHP3 a été écrit spécialement pour la création de sites Web. Il est inspiré de bons langages comme le Java, le Perl et le C. Tous ces langages sont certainement capables de réaliser des applications Web mais, n'ayant pas été écrits spécialement pour cela, ils sont plus compliqués à utiliser dans ce but.

La grande particularité de PHP3 est qu'il est directement intégré dans les pages HTML mais est exécuté coté serveur. Il n'a donc rien à voir avec le JavaScript qui lui, est interprété du côté client par le navigateur.

Grâce à de nombreuses fonctions, PHP3 peut s'interfacer à la quasi-totalité des SGBD du marché, avec des serveurs de messagerie ou encore générer des images et graphiques GIF à la volée, pour ne citer que quelques-unes des fonctionnalités les plus impressionnantes.

Et gardons le meilleur pour la fin : PHP3 est distribué librement et gratuitement sous la licence GNU GPL.

Installation

Si vous êtes toujours en train de lire, c'est probablement que vous êtes un peu intéressé ou à tout le moins intrigué. Il est donc temps de passer à la pratique..

Mais avant de pouvoir goûter aux joies de PHP3, il va falloir installer un minimum de programmes :

- MySQL : le serveur de base de données (il n'est pas indispensable pour utiliser PHP3, mais il sera utile dans nos prochaines leçons) ;

- Apache : le serveur Web ;

- PHP3 : le moteur.

Vous pouvez trouver des packages de ces applications correspondant à votre distribution, mais nous vous conseillons de les installer à partir des sources comme nous l'expliquons plus loin. L'installation de ces programmes est ici décrite pour Linux mais elle devrait s'avérer juste pour d'autres systèmes Unix. Notez qu'il est aussi possible de les faire fonctionner avec Windows.

Mysql

MySQL est un serveur de base de données SQL (Structured Query Language). Il s'agit d'une application client-serveur composée d'un serveur et d'un certain nombre de clients. Il existe des drivers ODBC pour MySQL permettant de travailler à distance sur votre base avec un SGBD comme Access. La version Linux de MySQL est gratuite, ce qui n'est pas le cas de la version Windows. Dans le cadre de cet article, vous n'aurez pas de problème de licence (si vous souhaitez l'utiliser à des fins plus commerciales, renseignez-vous mieux sur la licence).

Pourquoi avoir choisi MySQL parmi tant d'autres (msql, postrgresql, oracle.) ? Simplement parce qu'il est gratuit, robuste, performant et qu'il est très répandu.

(NDLR : et maintenant en GPL)

Installation

Commencez par récupérer les sources :

http://www.mysql.com

Placez-les par exemple dans le répertoire /usr/local :

$ cp mysql-3.22.25.tar.gz /usr/local

Décompressez-les :

$ cd /usr/local

$ tar xvzf mysql-3.22.25.tar.gz

$ cd mysql-3.22.25

Installez tout dans /usr/local/mysql, vous pourrez ainsi le supprimer facilement.

$ ./configure -prefix=/usr/local/mysql

$ make

$ su

# make install

Il faut maintenant lancer un script qui va créer la base de données initiale de MySQL.

# /usr/local/mysql-3.22.25/scripts/mysql_install_db

Le serveur MySQL est commandé par un script : /usr/local/mysql-3.22.25/support-files/mysql.server

Par exemple, pour lancer le serveur, commencez par rendre ce script exécutable :

# chmod +x /usr/local/mysql-3.22.25/support-files/mysql.server

Copiez ce script dans un autre répertoire de votre système et lancez-le avec vos scripts de démarrage.

Vérifions que MySQL est bien installé :

# /usr/local/mysql-3.22.25/support-files/mysql.serveur start

Vous devriez voir quelque chose comme ça :

Starting mysqld daemon with databases from /usr/local/mysql/var

Si tout s'est bien passé, MySQL est installé sur votre machine, le serveur est lancé et vous pouvez vous y connecter en utilisateur root et sans mot de passe. Nous pourrions nous arrêter là mais nous allons quand même améliorer un peu.

Tout d'abord, pour plus de sécurité, il est préférable de changer le mot de passe de l'utilisateur root (ici " root " ne correspond pas à l'administrateur de la machine mais à l'administrateur MySQL) :

# /usr/local/mysql/bin/myslqadmin -u root password votremotdepasse

Ajoutons un utilisateur normal avec lequel vous pourrez faire toutes vos modifications sans risque.

La gestion des utilisateurs est réalisée par une base de données qui comporte plusieurs tables. Il faut placer des informations dans ces tables afin de créer un nouveau compte utilisateur. Pour cela, vous devez d'abord lancer le client mysql en tant qu'utilisateur root (c'est le seul utilisateur existant pour le moment) et spécifier la base de données désirée (mysql) :

# /usr/local/mysql/bin/mysql -u root -p mysql

Saisissez le mot de passe précédemment changé.

Ensuite, indiquons les données à ajouter et la table de destination :

Nous autorisons l'utilisateur moi à se connecter au serveur depuis l'hôte localhost à la base de données moidb avec, comme mot de passe, dream (modifiez, bien sûr, les valeurs moi, moidb et dream).

1) On met à jour la table host (en supposant que cela n'a pas encore été fait)

mysql> insert into host (host,db,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)

values ('localhost','%','Y', 'Y', 'Y', 'Y', 'Y', 'Y');

2) On met à jour la table user pour une nouvelle combinaison user+host

mysql> insert into user (host,user,password)

values (localhost,moi,password(dream));

3) On met à jour la table db (base de données)

mysql> insert into db(host,db,user,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)

values ('localhost','moidb','moi','Y','Y','Y','Y','Y','Y');

Si vous voulez en savoir plus sur la gestion des utilisateurs, reportez-vous au manuel de MySQL.

A présent, nous allons créer la base de données moidb

mysql> q

# /usr/local/mysql/bin/myslqadmin -u root -p create moidb

enter password: *******

Database "moidb" created.

Vous pouvez stopper le serveur MySQL, car vous n'en avez plus besoin :

# /usr/local/mysql-3.22.25/support-files/mysql.server stop

L'installation de MySQL s'achève ici.

Apache

Apache est gratuit et, sans conteste, le serveur HTTP le plus utilisé au monde. Il est disponible pour une grande quantité de systèmes (Unix, Windows) et même Microsoft l'utilise ! Que dire de plus ? Il n'y a pas mieux.

Installation

Commencez par récupérer les sources :

Apache : http://www.apache.org

PHP3 : http://www.php.net

PHP3 peut être utilisé comme CGI ou comme module d'Apache, augmentant ainsi ses performances. Nous expliquerons ici l'installation en module. C'est pourquoi nous l'installerons en même temps qu'Apache.

tar xvzf apache_1.3.6.tar.gz

$ cd apache_1.3.6

$ ./configure --sysconfdir=/etc/httpd --datadir=/home/httpd --logfiledir=/var/log/httpd

Nous configurons ici Apache pour placer :

- Les fichiers de configuration dans /etc/httpd

- Les données (données à publier, scripts CGI.), qui seront installées dans /home/httpd

Les logs (fichiers d'informations) dans /var/log/httpd

Le reste sera installé par défaut dans /usr/local/apache

$ cd ..

$ tar xvzf php-3.0.11.tar.gz

$ cd php-3.0.11

$ ./configure --with-mysql --with-config-file-path=/etc/httpd --with-apache=../apache_1.3.6 --enable-track-vars

PHP3 est ici configuré comme module d'Apache, avec le support MySQL. Le fichier de configuration sera placé avec ceux du serveur HTTP.

Nous pouvons ensuite installer PHP3

$ make

$ make install

Il faut à nouveau configurer Apache pour prendre en charge le module et l'installer. Il ne faut pas oublier de copier le fichier de configuration de PHP3.

$ cd ../apache_1.3.6

$ ./configure --sysconfdir=/etc/httpd --datadir=/home/httpd --logfiledir=/var/log/httpd --activate-module=src/modules/php3/libphp3.a

$ make

$ su

# make install

# cd ../php-3.0.11

# cp php3.ini-dist /etc/httpd/php3.ini

Il ne reste plus qu'à éditer le fichier de configuration principal d'Apache et, éventuellement, celui de PHP3 avant de pouvoir lancer le serveur.

Editez le fichier /etc/httpd/httpd.conf

Vérifiez que le port soit bien 80 et modifiez cette ligne :

DirectoryIndex index.html index.php3

Il suffit de décommenter ces lignes, présentes vers la fin du fichier), et d'ajoutez ces deux lignes :

AddType application/x-httpd-php3 .php3

AddType application/x-httpd-php3-source .phps

Cela devrait suffire. Pour le reste, voyez par vous-même.

La partie installation étant complètement terminée, il ne reste plus qu'à tester. Commençons par le serveur Web :

Tout comme MySQL, Apache est commandé par un script :

# /usr/local/apache/bin/apachectl start

Lancez votre navigateur

# logout

$ netscape http://localhost/

Normalement, vous devriez voir apparaître :

It Worked !

Comme vous l'avez sans doute compris, cela signifie que votre serveur Apache fonctionne correctement.

Vérifiez que le moteur PHP3 fonctionne aussi :

Créez un fichier nommé test.php3 dans /home/httpd/htdocs contenant ceci :

<html>

<body>

<?php

echo "Hello World\n";

?>

</body>

</html>

Et pointez votre navigateur vers cette page :

http://localhost/test.php3

Il ne faut surtout pas la charger directement (/home/httpd/htdocs/test.php3), sinon le code PHP3 ne serait pas transformé.

Vous devriez voir :

Hello World

Vous pouvez aussi afficher le code source de la page avec votre navigateur pour être sûr que le code PHP3 a bien été transformé pour donner ceci :

<html>

<body>

Hello Word

</body>

</html>

Vous êtes enfin prêt à utiliser MySQL, Apache et PHP3.

Nous en resterons là pour le moment. Le mois prochain, nous entrerons plus en détail dans la programmation PHP3.

 

Alexandre Pauzies


© Copyright 2000 Diamond Editions/Linux magazine France. - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".