I. Introduction

I-A. Préface

Si vous rencontrez des difficultés ou que vous désirez approfondir un sujet, je vous invite cordialement à consulter les très nombreuses documentations en ligne disponibles sur le site de Developpez.com, ou bien de poser vos questions sur les forums de Developpez.com. Ne me posez pas directement de questions techniques, je vous renverrai vers les forums. Je suis par contre ouvert à toute suggestion pouvant contribuer à compléter cet article.

I-B. Préambule

Cet article n'a pas l'ambition de se substituer aux ouvrages et nombreuses documentations en ligne présentant le fonctionnement d'un système UNIX. Le but de ce propos est d'aider le développeur à mettre le pied à l'étrier. Vous pouvez vous passer de ce tutoriel et installer une distribution standard avec les options par défaut. Cependant, vous aurez dans ce cas beaucoup plus de difficultés pour modifier la configuration installée.

Soucieux de la difficulté qu'un système UNIX peut représenter pour un développeur Windows, cet article décrit avec précision les différentes étapes de la configuration d'un serveur Linux sous Red Hat. Le choix s'est porté sur Red Hat car c'est une distribution très sérieuse qui n'a plus à faire ses preuves. La démonstration vous permettra d'obtenir un serveur équipé des briques suivantes :

Briques minimales pour un serveur PHP, MySQL :
  • Apache
    serveur HTTP
Image non disponible
  • MySQL
    SGBD
Image non disponible
  • PHP
    script interprété par le serveur
Image non disponible
  • PhpMyAdmin
    gestion des bases MySQL en ligne
 
Briques supplémentaires
  • Perl
    script CGI
Image non disponible
  • Kylix
    web application, module dso, etc.
Image non disponible
  • Interbase
    sgbd
Image non disponible

Un mini guide de survie des "commandes shell incontournables" vous permettra d'utiliser immédiatement votre nouvel environnement (et rafraîchira de vieux souvenirs scolaires pour certains ;) )

II. Choix de la distribution

Il existe de nombreuses distributions de Linux. La plupart sont très complètes, et reconnaissent votre matériel sans difficulté (bien mieux que ne le fait Windows). Certaines sont cependant plus aisées à configurer. Toutes sont téléchargeables directement depuis le site de l'éditeur, et sont gratuites (à quelques exceptions près) :

Image non disponible
Image non disponible
Image non disponible
Image non disponible
 

J'ai décidé de mener ma démonstration avec la version 7.x de Red Hat. La dernière à ce jour est la 7.3

Les images des CD d'installation sont disponibles depuis le site internet : http://www.redhat.com/ Chaque image pèse environ 640 Mo. Vous graverez trois CD à partir des images ISO.

Si vous ne disposez pas de logiciel capable de graver une image ISO, vous pouvez télécharger Nero Burning http://www.nero.com/eng/ (version d'évaluation pour Windows)

III. Installation de Linux

A la différence d'une installation Windows 98, l'installation de Red Hat se fait en une seule passe ! Je vous conseille avant de commencer de vous munir de :

  • le no de firmware de votre carte scsi (si vous en avez une)
  • le nom exact de votre moniteur
  • une disquette (pour la génération de la disquette de secours)
  • la référence de votre souris

Une installation en 8 étapes :

Cette section n'est pas illustrée de captures d'écrans. Je n'ai pas jugé utile de prendre en photo mon moniteur lors de l'installation :)

  1. allumez votre PC avec le CD n°1 dans votre lecteur.
  2. le CD doit booter. Si ce n'est pas le cas, vérifier les préférences des bios de votre carte mère et de votre carte scsi. En cas d'échec, vérifier que votre bios scsi est à jour. Si cela ne fonctionne toujours pas, créez vous une disquette de boot.
    1. créer une disquette de boot
      Sous Windows, explorez le CD n° 1.
      \dosutils\rawrite.exe est un programme Dos qui vous permettra de générer une disquette de boot.
      L'image se trouve à l'emplacement : \images\fr\boot.img
      Pour créer l'image, ouvrez un shell dos.
      Exemple avec le lecteur de CDROM situé sur la lettre K:
      k:\dosutils>RAWRITE -f \images\fr\boot.img -d A:
  3. Suivez les instructions pas à pas. Elles sont très simples (choix du clavier, de la souris, etc.)
    1. Lorsque vous avez choisi une résolution écran, faites impérativement un test.
    2. Pour le partitionnement du disque dur, je vous suggère de laisser l'installation choisir les paramètres
    3. si vous partez d'un disque vierge et que vous désirez une partition DOS/Linux, raccourcissez l'une des partitions (ne touchez ni à /root ni à /swap), et créez une partition en FAT32.
  4. création des utilisateurs
    Sous Linux, il y a un administrateur qui possède tous les pouvoirs : root. Et une quantité non limitée d'utilisateurs et groupes. Vous allez choisir un mot de passe pour root, et créer les premiers utilisateurs (ou les créer par la suite).
  5. Choix du type d'installation Choisir une installation personnalisée. Si vous optez pour une configuration standard, Red Hat va vous installer tous les paquets. Ce qui ne nous intéresse pas, car nous voulons installer nous mêmes la plupart des couches, afin de maîtriser les chemins d'installation et d'exécution. De plus, le risque de se retrouver simultanément avec des versions différentes des mêmes couches n'est pas négligeable - arrachage de cheveux garanti :(
  6. Choix de l'environnement Il s'agit de l'environnement graphique. Vous avez le choix entre KDE (http://www.kde.org/) et Gnome (http://www.gnome.org/). Chacun de ces environnements possède son propre navigateur web, son éditeur de texte brut, son éditeur de texte évolué (façon Microsoft Word), son tableur, etc. Si vous êtes curieux, installez les deux. A chaque ouverture de session, vous pouvez choisir votre environnement. Je vous conseille de travailler sous KDE (plus complet).
    Image non disponible Image non disponible
  7. création de la disquette de démarrage
  8. rebootage. C'est terminé.

IV. Guide de survie

IV-A. Quelques notions de base sous Red Hat / KDE

Bienvenue sous Red Hat / KDE.

L'environnement vous est famillié, vous retrouvez beaucoup d'habitudes prises sous Windows : un menu système situé en bas de l'écran, un bureau, des icônes.

Image non disponible

Quatre bureaux :
Notez en standard la gestion de quatre bureaux simultanés. Cette option est indépendante de votre carte graphique.

Image non disponible

Ancrage des fenêtres :
Pour ancrer une fenêtre (visible sur les quatre bureaux), utilisez le bouton punaise situé sur chaque fenêtre :

Image non disponible

Login :
Vous devez vous logguer systématiquement en root durant les phases d'installation, pour disposer de tous les droits sur l'environnement.

Double clic :
Par défaut, un simple clic permet d'agir sur les icônes.
Pour revenir à une ergonomie plus familière (double clic), dans le menu système :

Image non disponible

Puis :

Image non disponible

La suite de ce tutoriel supposera que vous avez configuré le double-clic.

Explorateur de fichiers :
Pour naviguer dans l'arborescence des fichiers, utilisez Konqueror, dont la stabilité n'est encore pas à toute épreuve (!).

Image non disponible

Copier Coller du texte :
Utilisez Ctrl+C pour copier, pour coller, cliquez sur le bouton du milieu. KDE gère plusieurs presse-papiers. Choisissez le presse-papier à utiliser en cliquant dans la barre d'icônes :

Image non disponible

Accéder à une disquette ou un CD-ROM :
Double cliquez sur l'icône du bureau pour monter le périphérique et ouvrir un navigateur de fichier. Une fois terminé, il faut démonter le périphérique. Bouton droit sur l'icône 'unmount', sinon l'éjection n'est pas possible - sur Windows 98, l'éjection est possible mais attention aux écrans bleus :(

Lister les processus actifs :
Il est indispensable pour vos tests que vous sachiez si un processus est lancé ou non. Utilisez Ksysguard, accessible depuis le menu système ou par la combinaison de touches Ctrl + Escape.
Cochez la case Arborescence pour trier les processus hiérarchiquement : lorsque vous tuez un processus père, vous tuez également tous les enfants.

Image non disponible

Le gestionnaire de paquetages :
Beaucoup de logiciels peuvent s'installer directement sous la forme de paquets binaires. Pour cela, utilisez le gestionnaire de paquetages (nous y reviendrons). Menu système / gestionnaire de packages :

Image non disponible

Ouvrir un Shell :
Dans la barre d'icônes :

Image non disponible

Une fenêtre de Shell s'ouvre.

Image non disponible

IV-B. Les principales commandes Shell

Rappel : ouvrir un Shell :
Dans la barre d'icônes :

Image non disponible


Une fenêtre de Shell s'ouvre.

Image non disponible

Notation :
$ symbolise le prompt du shell. Il ne faut pas l'écrire !

Attention : Linux est case sensitive, c'est-à-dire sensible aux différences minuscules/majuscules. Pour accéder au répertoire Toto, la commande :

 
Sélectionnez
$cd toto


est incorrecte, et

 
Sélectionnez
$cd Toto


est correcte.

Pour obtenir une information succincte, la plupart des commandes reconnaît la syntaxe :

 
Sélectionnez
$[nom de la commande] --help



Pour exécuter une commande située dans le répertoire courant, utilisez la notation :

 
Sélectionnez
$./commande


Sinon, Linux va chercher en priorité dans le path avant de regarder le répertoire courant (le path est une variable d'environnement qui indique au système l'ensemble des chemins de recherche).
Afficher le path :

 
Sélectionnez
$echo $PATH



Complément de commande :
Un raccourci précieux pour gagner du temps. Tapez les premières lettres d'une commande, ou d'un fichier, ou d'un répertoire situé dans le répertoire courant (ou dans le path), puis appuyez sur la touche de tabulation pour compléter automatiquement le mot. Au besoin, appuyez plusieurs fois sur tabulation pour faire défiler toutes les possibilités.

Quelques commandes :
man :
man pour manuel. Suivi du nom d'une fonction, il donne des explications assez complètes sur son utilisation. Pour naviguer dans man, on utilise les flèches haut/bas, les défilements de pages, et la barre d'espacement. Pour quitter, mêmes raccourcis que sous VI : tapez :q puis touche entrée.

pwd :
connaître le répertoire courant

cd :
changer de répertoire.
Sous Linux, on ne distingue pas les différents disques durs par des lettres comme sous Windows. Tout commence à la racine /. Exemple, pour accéder au lecteur de CD-ROM :

 
Sélectionnez
$ cd /mnt/cdrom/



ls :
Liste des répertoires.
Équivalent MS Dos :
ls pour DIR /W
ls -la pour DIR

su :
système user. Quand vous êtes loggé sous un compte utilisateur, vous pouvez devenir root (dans le cadre du shell) en donnant le password root. Et réciproquement, root peut ouvrir une nouvelle session (dans le shell) sous n'importe quel compte utilisateur. Pour fermer la session, tapez exit.

which :
Cite tous les emplacements d'un fichier dans le path.

find :
trouver un fichier.
exemple : on se place à la racine
$cd /
on cherche le fichier httpd.conf : $find -name httpd.conf

mv :
déplacer/renommer un fichier. Pour renommer :
$mv anciennom nouveaunom

rm :
supprimer fichiers et répertoires.

 
Sélectionnez
$rm nomdufichier


options
-f pour un répertoire
-R pour une récursion
Vous pouvez utiliser le joker *.

le pipe '|' :
Permet de diriger la sortie standard (extrêmement utile).

cat :
Affiche le contenu d'un fichier. Éditer le fichier toto.txt :

 
Sélectionnez
$cat toto.txt



grep :
Affiche toutes les lignes d'un fichier contenant une occurrence.
Combiné avec | et cat :

 
Sélectionnez
$cat toto.txt | grep crayon


Affiche toutes les lignes du fichier toto.txt contenant le mot crayon.

ps :
lister les processus actifs.
$ps -aux : liste tous les processus actifs, y compris ceux du système.
Exemple : pour retrouver les instances du processus netscape :

Image non disponible

Pour détruire l'instance de Netscape (d'après l'exemple) :

 
Sélectionnez
$kill -9 1164


où 1164 est le n° de l'instance de Netscape.

& :
Lorsque & termine une ligne de commande, cela signifie que le processus est lancé en parallèle (fork) et ne bloque pas le prompt de votre shell. Sinon, il faut quitter (ou tuer) le processus pour reprendre la main sur le shell.

vi :
Le compagnon indispensable du développeur Linux. Très aride d'utilisation, vous l'adopterez rapidement au quotidien !

chmod : Chaque fichier possède des droits d'utilisation en lecture/écriture/exécution.
Lecture-Read = 4, Ecriture-Write = 2, Exécution-execute = 1.
Ainsi, pour un fichier pouvant être lu et exécuté : Read + Execute = (4) + (1) = 5.
Mais c'est en réalité un tout petit peu plus compliqué.

Propriétaire
  Read Write Execute
Valeur 4 2 1
Groupe
  Read Write Execute
Valeur 4 2 1
Autres utilisateurs
  Read Write Execute
Valeur 4 2 1

On distingue sous Linux trois catégories d'utilisateurs : le propriétaire du fichier, son groupe d'utilisateurs, et le reste des utilisateurs. chmod précise les privilèges de chacune de ces catégories sur le fichier.
Ainsi un chmod égal à 754 signifie que le propriétaire peut lire/modifier/exécuter le fichier, que les membres de son groupe peuvent lire/exécuter le fichier, et le reste des utilisateurs peut seulement lire le fichier.
Pour appliquer chmod sur un répertoire et ses sous répertoires, utilisez -R.

chown :
Permet de modifier le propriétaire d'un fichier ou d'un répertoire.

 
Sélectionnez
$chown olivier liste.txt


Cette commande change le propriétaire du fichier liste.txt. Le nouveau propriétaire est l'utilisateur olivier. Il faut disposer des privilèges adéquates pour exécuter cette commande.
Exemple d'utilisation : un utilisateur vous a demandé de déployer des fichiers pour qu'il puisse y accéder en lecture / écriture. Vous avez décompressé un fichier .tar.gz sous l'identité root. Il faut donc changer le propriétaire des fichiers décompressés. Pour changer le propriétaire :

 
Sélectionnez
$chown -R nom_utilisateur nom_du_répertoire



adduser :
Ajouter un utilisateur dans le système. Syntaxe :

 
Sélectionnez
$adduser nom_utilisateur


Vous devrez choisir le mot de passe de l'utilisateur. RedHat créé automatiquement le répertoire /home/nom_utilisateur

IV-C. la compression tar.gz

La plupart des fichiers que vous allez télécharger sont compressés au format tar.gz. C'est le résultat de deux compressions successives.
Exemple, pour dé-zipper le fichier apache_1.3.20.tar.gz :

 
Sélectionnez
$ gunzip –d apache_1.3.20.tar.gz


apache_1.3.20.tar.gz est devenu apache_1.3.20.tar
Puis :

 
Sélectionnez
$ tar –xvf apache_1.3.20.tar


Le fichier a été décompressé dans le répertoire apache_1.3.20
Le fichier apache_1.3.20.tar existe toujours.

Mais cette opération pouvait s'effectuer en une seule étape :

 
Sélectionnez
$ tar –zxvf apache_1.3.20.tar



Je vous recommande de renommer le répertoire car il est extrêmement contraignant de se traîner des noms de répertoire à rallonge.

 
Sélectionnez
$ mv apache_1.3.20 apache


Ou alors de créer un lien symbolique sur ce répertoire (c'est le principe d'un alias) :

 
Sélectionnez
$ ln -s apache_1.3.20 apache


Cette deuxième façon de procéder permet de conserver une trace facile à retrouver du numéro de la version d'Apache installée.

Lorsque vous ouvrez un fichier tar.gz dans l'explorateur de fichiers Konqueror, les fichiers sont décompressés temporairement à la volée pour permettre la navigation dans l'arborescence de l'archive.

IV-D. Télécharger des fichiers

je vous déconseille de naviguer avec le navigateur web maison, Konqueror. Il est très instable. Vous disposez également en standard de Netscape plus stable mais un peu préhistorique. Je vous suggère d'installer un autre navigateur, par exemple Opéra.
Téléchargez vos fichiers dans le répertoire /usr/local/ car c'est à cet endroit que s'effectueront nos installations.

IV-E. Les installations

Principe général :
Certaines briques s'installent facilement au moyen de packages binaires. D'autres doivent être configurées de façon très précise, une compilation est dans ce cas nécessaire.

installer un paquetage (package) :
Pour installer un package, clic bouton droit sur le fichier rpm, apparition d'un menu contextuel "Gestionnaire de packages". Testez le package avant de l'installer. Vous verrez immédiatement s'il vous manque une ressource.
Au moment de l'installation, le Gestionnaire de packages affiche une boite de dialogue indiquant le nom du package à installer. Cette boite est déconcertante, car elle s'appelle "Error". C'est un bug, ne vous en souciez pas, le package s'installera convenablement.

installation à la main :
En général, il y a toujours un fichier readme décrivant les 220 configurations différentes pour installer le programme. Il faut le compiler en précisant ses propres options. Sous Linux, tout est sur mesure !
Dans ce tutoriel, vous serez guidé pas à pas dans la marche à suivre ; ce qui vous permettra d'acquérir tous les réflexes et devenir autonome.

V. Configurer MySQL

V-A. Télécharger MySQL

Nous n'allons pas compiler MySQL. Nous nous contenterons de télécharger les packages binaires.
Les packages RedHat sont téléchargeables depuis le site http://dev.mysql.com/

Les Packages à télécharger :
Server (i386) MySQL-3.23.44-1.i386.rpm couche serveur MySQL
Client programs (i386) MySQL-client-3.23.44-1.i386.rpm couche client MySQL
Client shared librairies (i386) MySQL-shared-3.23.44-1.i386.rpm   Bibliothèques indispensables pour Kylix

les noms des packages sont donnés à titre indicatif, ils varient suivant la version.
Comment installer un package.

V-B. Démarrer et arrêter le démon MySQL

Le démon SQL se lancera automatiquement au prochain démarrage.

Pour le lancer à la main :
On peut appeler directement le script qui lance MySQL à chaque démarrage du serveur.
Démarrage de Mysql :

 
Sélectionnez
$ /etc/rc.d/init.d/mysql start


Arrêt de Mysql :

 
Sélectionnez
$ /etc/rc.d/init.d/mysql stop



On peut aussi appeler directement le démon :

 
Sélectionnez
$ /usr/bin/safe_mysqld --user=mysql &


le & signifie que l'on lance le processus et que l'on n'attend pas la fin de son exécution. Sinon, le shell reste bloqué jusqu'à ce que l'on tue le processus depuis un autre shell, ou bien qu'on le stoppe avec Ctrl+C.

V-C. Le shell MySQL

Lancer le shell de MySQL :

 
Sélectionnez
$ /usr/mysql –u<user name> -p<password>



Il faut le faire en root au début, sinon vous n'avez pas les privilèges pour créer une nouvelle base.
Par défaut, une base nommée mysql est créée. Ne la supprimez pas. Elle contient la liste des utilisateurs ainsi que leurs droits.

V-D. Exemple d'utilisation du shell MySQL

Installer la base de données toto

 
Sélectionnez
>create database toto;
>use toto;
>source toto.sql;
>quit;



un ";" termine chaque ligne de commande du shell.
Le fichier toto.sql est un fichier texte. C'est le dump d'une base MySQL existante, située dans le répertoire où vous étiez placé en lançant le shell MySQL. Exemple d'un fichier MySQL :

 
Sélectionnez
#
# Structure de la table `PERSONNE`
#

DROP TABLE IF EXISTS PERSONNE;
CREATE TABLE PERSONNE (
  ID_PERSONNE int(11) NOT NULL default '0',
  NOM varchar(100) NOT NULL default '',
  PRENOM varchar(100) NOT NULL default '',
  AGE tinyint(4) NOT NULL default '0',
  PRIMARY KEY (ID_PERSONNE)
) TYPE=MyISAM; 
  1. Notes :
    le fichier toto.sql a pu être généré par exemple par PhpMyAdmin ou par la commande shell mysqldump.
  2. Il n'est pas possible d'importer le dump d'une base issue d'un SGBD différent (Interbase, SQL Server ou Oracle). Les langages SQL de ces différents SGBD ne sont pas compatibles. Il faut réécrire en grande partie la plupart des déclarations.

V-E. Quelques généralités

Le port par défaut de MySQL est 3306.

Emplacement physique des fichiers (par défaut) :
dans /usr/bin/ : mysql, mysqladmin, mysqld
dans /etc/ ou /var/lib/mysql/ :my.cnf
dans /var/lib/mysql/mysql/ : emplacement physique des fichiers de la base

Je vous conseille d'installer PhpMyAdmin (abordé plus loin) pour créer vos premiers utilisateurs MySQL. Son utilisation est beaucoup plus conviviale que celle du shell de MySQL.

V-F. Les variables d'administration MySQL

Certaines variables se paramètrent au lancement du démon :

 
Sélectionnez
$ mysql -O variable=valeur



Les autres se paramètrent dans le fichier de configuration /etc/my.cnf :

 
Sélectionnez
[mysqld]
set-variable= variable=valeur



Dans les deux cas, il faut arrêter MySQL et le relancer pour que les changements prennent effet.


V-G. Compatibilité de MySQL avec les autres SGBD

MySQL est un SGBD extrêmement léger. Il occupe peu de place en mémoire et est très performant. En contre partie, de nombreuses fonctionnalités ne sont pas implémentées.

Liste des fonctionnalités non implémentées dans MySQL 3.23

  • Le SELECT de SELECT, exemple :
    SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);
  • SELECT INTO TABLE
  • Les transactions
  • Les procédures stockées
  • Les triggers
  • Les clefs étrangères
  • Les vues
  • COMMIT-ROLLBACK, ON DELETE CASCADE, etc.

L'équipe de développement de MySQL justifie tous ces choix de la façon suivante :

MySQL serait ralenti d'un facteur de 2 à 4. MySQL est beaucoup plus rapide que bien d'autres bases SQL (en général, de 2 à 3 fois plus rapide.)

Ne fuyez pas ! MySQL demeure tout de même un bon SGBD, fiable, des améliorations sont constamment apportées au langage.

VI. Installer Apache et Php

VI-A. Introduction

Configurer Apache peut s'avérer extrêmement complexe. Pour approfondir le sujet, je vous conseille de lire les documentations officielles httpd.apache.org, ainsi que celles de www.developpez.com, ou encore, acquérir l'un des nombreux pavés disponibles en librairie.

Procédure générale :
Pour ceux d'entre vous qui ont déjà installé des bundles Php/Apache sous Windows (Easy Php par exemple), l'installation qui va suivre n'a rien de comparable. Tout se fait à la main, mais en contre partie, le résultat est entièrement sur mesure.
Marche à suivre :

  1. installation de Apache sans paramètres
  2. installation de Php, en précisant que l'on utilise conjointement Apache et MySQL
  3. re-compilation de Apache, en intégrant Php dans son noyau et des modules dso.

C'est d'une simplicité déconcertante Image non disponible

VI-B. Première installation de Apache

Apache se télécharge à l'URL : http://httpd.apache.org.
Reportez vous aux consignes du guide de survie IV-D :
Téléchargez dans le répertoire /usr/local/, décompressez le tar.gz dans un répertoire que vous renommerez apache, ou bien créez un lien symbolique sur ce répertoire.

Dans un shell, placez-vous dans le répertoire de Apache. Je suppose que c'est /usr/local/apache.
Tapez successivement les trois lignes suivantes qui permettront l'installation :

 
Sélectionnez
$ cd /usr/local/apache
$ ./configure --prefix=/usr/local/apache
$ make
$ make install



Vous pouvez déjà lancer le démon Apache : $ /usr/local/apache/bin/apachectl start

Et le tester. Ouvrez un navigateur internet, et connectez le sur l'IP local. Admirez fièrement la page de démonstration de votre serveur Apache ! Cette page est visible depuis l'ensemble de votre réseau, en tapant l'IP de la machine dans n'importe quel navigateur.
Si cela ne fonctionne pas, vérifiez que le firewall fourni en standard avec RedHat ne fait pas obstacle à des requêtes extérieures. N'hésitez pas à désactiver les règles qui empêchent l'accès à Apache. Nous verrons plus tard qu'il est plus facile de gérer ces règles d'accès directement sur Apache plutôt que par le firewall.

Pour poursuivre l'installation, arrêtez le démon :

 
Sélectionnez
$ /usr/local/apache/bin/apachectl stop 

VI-C. Installation de Php

Php se télécharge à l'URL : http://www.phpinfo.net/. Retenez cette adresse. C'est une mine d'informations concernant la programmation Php.

Téléchargez, décompressez, etc., le tout dans un répertoire /usr/local/php.
La procédure d'installation est la suivante :

 
Sélectionnez
$ cd /usr/local/php
$ ./configure --with-mysql --with-config-file=/usr/local/apache/conf --with-apache=/usr/local/apache --enable-track-vars
$ make
$ make install 

VI-D. Ré-installation de Apache

L'installation a généré un fichier de configuration qu'il faut copier ailleurs :

 
Sélectionnez
$ cd /usr/local/php
$ cp php.ini-dist /etc/httpd/php.ini 

VII. PhpMyAdmin

VII-A. Introduction

PhpMyAdmin est un outil en ligne qui permet une gestion immédiate et cohérente de toutes ses bases MySQL.
Depuis un navigateur internet, vous pouvez créer de nouvelles bases, exécuter des requêtes SQL, modifier vos bases, gérez vos utilisateurs, etc.

VII-B. Téléchargement

Page officielle de PhpMyAdmin : http://www.phpmyadmin.net/home_page/index.php

Page de téléchargement : http://www.phpmyadmin.net/home_page/downloads.php

VII-C. Installation de PhpMyAdmin

Décompressez le tar.gz dans un sous répertoire de /home/webuser/html/, par exemple : /home/webuser/html/phpmyadmin (cf. VI-D. Ré-installation de Apache), car tous vos sites doivent se situer à ce niveau. N'oubliez pas de changer le propriétaire des fichiers.

PhpMyAdmin s'appuie exclusivement sur Php et MySQL. Il n'y a pas de manipulation particulière à effectuer.
Profitez en pour ajouter vos utilisateurs MySQL dans la table user de la base mysql. Sans rentrer dans les détails, pour créer un utilisateur web, affectez lui les paramètres suivants :

 
Sélectionnez
Host = % il peut venir de n'importe 
User = jojo par exemple
Password = HeavenCanWait666 par exemple 

Et affectez les privilèges : Yes/No aux différentes commandes SQL (SELECT, INSERT, etc.)
Vous devrez ensuite lancer la commande MySQL "FLUSH PRIVILEGES" pour que MySQL tienne compte des nouveaux privilèges.

Mais encore une fois, le sujet est trop vaste pour être abordé ici. Reportez vous aux nombreux manuels en ligne sur le sujet :
http://sgbd.developpez.com/cours/
http://dev.mysql.com/doc/index.html

VII-D. Configuration de PhpMyAdmin

Éditez le fichier config.inc.php et modifiez les lignes suivantes :

 
Sélectionnez
  1. $cfgPmaAbsoluteUri = 'http://www.votresite.com/phpmyadmin'; 
 
Sélectionnez
  1. $cfgServers[$i]['host'] = 'localhost'; 
  2. $cfgServers[$i]['port'] = ''; 
  3. $cfgServers[$i]['socket'] = ''; 
  4. $cfgServers[$i]['connect_type'] = 'tcp'; 
  5. $cfgServers[$i]['controluser'] = ''; 
  6. $cfgServers[$i]['controlpass'] = ''; 
  7. $cfgServers[$i]['auth_type'] = 'config'; 
  8. $cfgServers[$i]['user'] = 'nom_utilisateur'; 
  9. $cfgServers[$i]['password'] = 'mot_de_passe'; 
  10. $cfgServers[$i]['only_db'] = ''; 


Notez que le nom de la base (ou des bases) accessibles n'est pas précisé. Il est implicitement déduit des privilèges octroyés à l'utilisateur.

VII-E. Exemple de script de connexion Php à votre base :

 
Sélectionnez
$host="localhost";
$user="nom_utilisateur";
$pwd="mot_de_passe'";
$base="NomDeVotreBase";

mysql_connect($host,$user,$pwd);
@mysql_select_db("$base"); 

VIII. Démarrer sous Apache

VIII-A. Introduction

Popularité de Apache :
Apache est le serveur http le plus populaire. Une étude Netcraft montre que depuis 1996, Apache s'est imposé comme étant le serveur le plus utilisé au monde :

Image non disponible

Apache victime de sa popularité, un nombre croissant de hackeurs s'intéresse de près aux failles de sécurité potentielles. Consultez régulièrement le site de Apache et les sites de sécurité pour vous tenir informer : http://www.linuxsecurity.com
Ce chapitre va aborder quelques notions de base de la configuration Apache.

VIII-B. Le fichier de configuration httpd.conf - où le trouver ?


Si vous avez suivi les instructions du chapitre VI. Installer Apache et Php, votre fichier httpd.conf se trouve dans le répertoire : /usr/local/apache/conf

Pour l'éditer avec kwrite :

 
Sélectionnez
$ kwrite /usr/local/apache/conf/httpd.conf &


Notez le & qui termine la ligne de commande. Il signifie que le processus est lancé en parallèle et ne bloque pas le prompt de votre shell. Sinon, il faut quitter kwrite pour reprendre la main sur le shell. (Par ailleurs, je vous recommande vivement de vous familiariser rapidement avec l'éditeur vi).

Si vous avez installé plusieurs fois Apache, il se peut qu'il y ait un peu partout des doublons de httpd.conf dans votre système. Voici un truc pour vérifier qu'il s'agit du bon fichier. Apache a installé un script apachectl, qui permet de lancer, arrêter, relancer, et tester le serveur http. Si ce script n'est dans le chemin, il se trouve dans /usr/local/apache/bin. Dans votre fichier httpd.conf, tapez n'importe quoi dans la première ligne, par exemple une série de caractères insignifiante : 'zefsgrrg'. Sauvegardez, et testez votre fichier :

 
Sélectionnez
$ /usr/local/apache/bin/apachectl configtest


Si une erreur est signalée en ligne 1, vous utilisez le bon fichier. Sinon, partez à la recherche de votre fichier :

 
Sélectionnez
$ cd /
$ find -name httpd.conf


Vous donnera toutes les occurrences de httpd.conf sur votre système.

VIII-C. Le fichier de configuration httpd.conf - Configuration

Je vous recommande la lecture des nombreuses documentations en ligne et des livres sur le sujet.
Le fichier est constitué de différentes sections qui vous permettront de configurer individuellement chacun de vos sites. Il est possible de définir des règles de restriction par IP, navigateur, authentification, sur les instructions HTTP : GET et POST ; de diriger les utilisateurs sur un index particulier en fonction de la langue du navigateur, etc. Vous vous apercevrez très vite de la puissance d'Apache ;-P

Image non disponible
ServerType standalone
 
ServerRoot "/usr/local/apache" chemin d'installation d'apache
Listen IP:80 ecoute les trames sur le port 80 adressées à la machine ayant IP comme adresse IP (celle de votre serveur)
Port 80 port utilisé par Apache
User nobody utilisateur UNIX utilisé par l'internaute qui naviguera sur le site
Group nobody groupe de cet utilisateur UNIX
ServerAdmin votre email inscrire l'e-mail de l'administrateur
ServerName IP Précisez l'IP du serveur
DocumentRoot "/home/webuser/" chemin physique vers les fichiers html, défini en VI-D. Ré-installation de Apache
<Directory "/home/webuser/">

</Directory>
dans ce tags, définitions des règles gérant les droits d'accès en d'exécution.
Vous pouvez placer autant de balises <Directory> que vous le désirez.
Order allow,deny
Allow from 192.168.0.
Paramètres à placer entre les balises directory.
Ici, c'est une restriction d'accès par IP. On autorise uniquement les utilisateurs ayant une IP commençant par 192.168.0.
  On peut surcharger ces informations au moyen de la commande AllowOverride. Ainsi, on définit des règles générales pour l'ensemble des sites, et on les change sur certains répertoires.
AccessFileName .htaccess Signifie que les règles d'accès à un répertoire sont gérés en priorité par le fichier .htaccess lorsqu'il y en a un. Dans ce cas, les règles de .htaccess s'appliquent en cascade sur les sous répertoires.
Nous verrons plus loin dans ce chapitre comment s'utilise ce fichier.
ScriptAlias
ScriptAlias /~webuser/cgi-bin/ /home/webuser/cgi-bin/
<Directory "/home/webuser/cgi-bin/">
   AllowOverride None
   Options ExecCGI FollowSymLinks
   Order allow,deny
   Allow from all
</Directory>
Précise les règles d'un répertoire. Ici, le répertoire adressé par http://localhost/cgi-bin se trouve physiquement à l'emplacement /home/webuser/cgi-bin/. Il contient des scripts. Tout le monde a le droit de les lancer.
Vous pouvez écrire autant de ScriptAlias que vous le désirez.
AddLanguage Permet au serveur d'envoyer une page écrite dans la langue du navigateur de l'utilisateur (si elle existe sur le serveur). Les utilisateurs qui arrivent pour la première fois sur le site lisent la home page dans leur langue.
AddType application/x-httpd-php .php3 .php
AddHandler cgi-script .cgi
AddHandler server-parsed .shtml
Précise au serveur que les extensions php3 et php sont des scripts Php. Idem pour le cgi (Perl, Kylix), le shtml.
Logs de connexion De nombreuses options vous permettent de créer des log de connexion extrêmement complets, par sites, par utilisateur, etc.
Nous n'aborderons pas le sujet dans ce tutoriel
Virtual Host Le Virtual Host vous permet de gérer plusieurs sites internet sur le même serveur Linux
Nous n'aborderons pas ce sujet (très vaste) dans ce tutoriel

IX. Installer Perl

IX-A. Introduction

Le langage Perl ne se présente plus : ultra puissant et très complet grâce à ses nombreuses bibliothèques de fonctions. Cependant, je ne vous recommande pas l'utilisation de Perl, à moins que vous soyez déjà un adepte du langage ou très motivé ! En effet, la programmation en Perl est ardue. Difficile à déboguer, les scripts Perl se borneront à vous afficher une erreur 500 à la moindre erreur.

Si Perl vous rebute, je vous suggère de développer vos CGI sous Kylix, qui bénéficie de toutes les bibliothèques déjà disponibles sous Delphi (à l'exception, bien sûr, des fonctions spécifiques Windows).

IX-B. Téléchargement / Installation

IX-B-1. Les packages rpm

Vous trouverez les package rpm sur le site de www.cpan.org (Comprehensive Perl Archive Network). Je vous suggère d'installer les packages si vous désirez installer Perl juste pour tester.

IX-B-2. Les sources

Les sources de Perl sont téléchargeables depuis le site officiel http://www.perl.org, rubrique Use The Source / source code distribution.
L'intérêt de la compilation complète de Perl présente les avantages suivants : customisation de Perl sur mesure (lisez le fichier texte INSTALL), accès aux sources de Perl.
La compilation se fera par les lignes de commandes suivantes (vérifiez dans INSTALL et armez vous de patience) :

 
Sélectionnez
$ rm -f config.sh Policy.sh
$ sh Configure -de
$ make
$ make test
$ make install

IX-C. tester Perl

Sous l'éditeur vi, créez le fichier suivant que vous nommerez test.cgi :

 
Sélectionnez
#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "Hello World !";


Puis, exécutez le :

 
Sélectionnez
$ perl test.cgi



Félicitations, vous venez d'écrire votre premier programme cgi en Perl !
Si un répertoire cgi-bin est configuré dans le httpd.conf de votre serveur Apache (cf ScriptAlias), vous pouvez exécuter ce programme directement depuis un navigateur internet (le fichier doit avoir un chmod à 755).

IX-D. Ajouter des modules à Perl

Perl est modulaire, de nombreuses ressources sont disponibles gratuitement sur internet. Dans la majorité des configurations, l'ajout d'un module est un jeu d'enfant. Cependant, cette action peut se transformer en véritable parcours du combattant quand les problèmes de configuration réseau pointent leurs nez…

IX-D-1. Ajouter un module : procédure automatique

Tout d'abord, pour installer un module, vous devez connaître son nom. Consultez la liste sur le site de www.cpan.org : http://www.cpan.org/modules/01modules.index.html
Perl dispose d'un shell puissant, il nous suffit juste de donner le nom du module pour que le shell le récupère sur internet et l'installe automatiquement. Supposons que nous désirons installer le module (bundle) libtoto.
Lancement du shell Perl :

 
Sélectionnez
$ perl –MCPAN –e shell


Sous le shell Perl :

 
Sélectionnez
> install Bundle ::libtoto

Concrètement, le shell de Perl va chercher le module sur une liste de sites FTP. S'il ne parvient pas à se connecter sur le premier, il passe au second, etc. C'est très pratique. Malheureusement, il y a des cas particuliers non gérés.
Supposons que votre serveur soit en IP fixe et qu'aucun nom de domaine n'y soit associé. Si le serveur FTP en face effectue un reverse DNS sur votre IP, il ne la trouvera pas et refusera la connexion ! Et il se peut que ceci se produise avec tous les sites de sa liste :(
Une solution est d'effectuer la manipulation à la main.

IX-D-2. Ajouter un module : procédure manuelle

Commencez par télécharger le module. Soit sur le site de cpan.org, soit sur le FTP de la fac de Jussieu : ftp.lip6.fr (connexion anonyme). Ce FTP regorge de ressources, prenez le temps de le visiter.
Localisation des modules sur ftp.lip6.fr : /pub/perl/CPAN/modules/by_module
N'oubliez pas de passer en transfert binary. Le module sera téléchargé au format tar.gz
Décompressez le fichier suivant la procédure habituelle dans un répertoire, puis installez le suivant la procédure suivante :

 
Sélectionnez
$ perl Makefile.pl
$ make
$ make install 

Le module est installé.

X. Installer Kylix

X-A. Introduction

Kylix ne se présente plus. Kylix est le portage réussi de Delphi (l'un des outils de développement les plus performants sous Windows) pour Linux. Kylix est un logiciel payant. Il existe une version light, gratuite et sans limitations. Dans sa version 3, Kylix intègre C++ Builder, ce qui permet de concurrencer directement gcc, dans un magnifique environnement de développement RAD.

Lors du bêta test de Kylix 2, j'avais rédigé l'appréciation suivante :

En lançant Kylix 1, Borland avait jeté un pavé dans la mare du monde Linux : l'environnement de développement dépasse largement tous les autres outils de programmation existant sur cette plate-forme. C'est la première fois que l'on peut faire du RAD sous Linux, tout en restant dans un environnement ultra familier : celui de Delphi. Linux est désormais une composante incontournable en matière de serveurs web (et certainement bientôt en tant que stations de travail). Kylix nous permet de réaliser une jointure efficace des environnements Windows / Linux jusqu'ici difficile (au prix d'un travail très lourd). Les développeurs Windows peuvent désormais franchir le grand pas vers Linux. L'environnement de travail est certes différent, mais la complicité Delphi / Kylix permet de retrouver immédiatement ses marques et d'être productif. Kylix 2 est le grand frère attendu de Kylix 1 : plus stable, ouvert sur le web, installation améliorée (plus besoin de patcher des bibliothèques, installable par l'utilisateur root). Kylix 2 permet de développer des applications et des serveurs d'application Web multiplateformes, avec une facilité déconcertante. Ainsi, une application CGI accédant à une base MySQL locale (ou distante) pourra fonctionner sous Linux (serveur Apache), et sous Windows (serveur Apache ou IIS). référence : Developpez.com :: témoignages Kylix

X-B. Obtenir Kylix

Achat de la version pro, de la version entreprise ou téléchargement de la version gratuite, toutes les informations : http://kylix.developpez.com/

X-C. Installer Kylix

Depuis la version 2, l'installation de Kylix est extrêmement aisée. On est loin de l'obscurantisme propre à certaines installations vues précédemment Insérer le cdrom de Kylix. Double cliquez sur l'icône du cd située sur le bureau pour le monter, ou effectuez le montage en ligne de commande :

 
Sélectionnez
$ mount /mnt/cdrom


Puis lancez l'installation

 
Sélectionnez
$ cd /mnt/cdrom $ sh setup.sh 


Si tout se passe bien, vous vous retrouverez devant l'écran suivant :

Image non disponible

X-D. Utiliser Kylix

Kylix est désormais disponible dans votre barre de menu (redémarrez le serveur X-Windows pour appliquer les changements), ou en ligne de commande shell : startkylix

L'environnement ne dépaysera pas les habitués de Delphi et C++ Builder :

Image non disponible


(notez au passage le fond bleu qui est propre à ma configuration, cette couleur n'est pas imposée !)

La compatibilité Delphi / Kylix est redoutable. Si vous restez dans un environnement CLX (et que vous ne faites pas appel à des API spécifiques Windows), vos programmes Delphi seront compatibles Kylix sans adaptation.
Vous bénéficiez, de plus, des très nombreuses bibliothèques Delphi disponibles gratuitement sur internet (modulo qu'elles n'utilisent pas des spécificités Windows).
Attention, Kylix est case sensitive lorsqu'il s'agit d'importer une unité via la clause uses.


Je ne m'attarderai pas plus longtemps sur le sujet, de nombreux cours et tutoriels sont disponibles sur internet et sur le site de Developpez.com

XI. Installer Interbase serveur

XI-A. Introduction

De même que Kylix, Interbase ne se présente plus. C'est un sgbd robuste beaucoup plus puissant que MySQL.
Interbase existe en version payante ou Open Source.
Vous trouverez des cours & tutoriels sur le site de de Developpez.com : http://sgbd.developpez.com

XI-B. Obtenir Interbase serveur

Achat de la version certifiée ou téléchargement de la version Open Source (gratuite) : http://sgbd.developpez.com

XI-C. Installer Interbase serveur

Je vous suggère de télécharger Interbase sous forme de packages. L'installation se fait sans le moindre effort par le gestionnaire de packages. Interbase est installé dans le répertoire /opt/interbase

Démarrez le serveur :

 
Sélectionnez
$ /opt/interbase/bin/ibserver &



Pour que Interbase démarrage automatiquement à chaque boot, consultez cet article sur Borland Developper Network : Installing InterBase to start automatically and run as a service under Linux

XI-D. Utiliser Interbase serveur

Lancez un client Interbase (IBConsole) depuis un autre poste, connectez-vous en donnant l'adresse IP de votre serveur, et créez une nouvelle base. (rappel des codes administrateur par défaut : user=SYSDBA, pwd=MASTERKEY).

Image non disponible

XI-E. Article connexe : comment utiliser Interbase avec Php

"Getting started with php and InterBase" par Yves Glodt (en anglais) :
http://www.phpbuilder.com/columns/glodt20020212.php3

XII. Annexe - Liens utiles

Des cours et articles pour aller plus loin :

Il existe des milliers de sites !
Voici une sélection volontairement réduite. Complétez vos recherches à l'aide de Google.


Vos questions sont les bienvenues sur les forums : http://www.developpez.net/forums/