Dernière mise à jour : 20/10/2002
Cet article a pour but de vous initier à l'installation et au paramétrage de la trinité sous Linux, j'ai nommé : Apache, PHP, phpMyAdmin et MySQL. Pour ceux qui ne le sauraient pas, Apache vous sert de serveur web, PHP de langage de programmation (au même titre que l'ASP sous Windows) et MySQL remplace ici avantageusement Microsoft SQL Server (qui est un peu cher même en license individuelle ;) phpMyAdmin vous permet de gérer en quelques clics vos bases MySQL, la méthode à la main étant pourtant la bonne école pour se faire les dents. J'ai également rajouté en fin d'article l'utilisation (expérimentale) d'Apache 2 avec Mysql 4 et PHP 4.2.2
Je me suis servit des dernières versions disponibles actuellement, j'ai nommé : Apache 1.3.26, PHP 4.2.2 et MySQL 3.51. Nous allons donc commencer par un petit téléchargement des sources :
Apache 1.3.x / PHP 4.2.x / MySQL 3.x / phpMyAdmin 3.x
Cette section va couvrir les versions de production de chacun des produits cités dans le titre. Vous pouvez donc vous en servir comme référence pour customiser vos programmes. Sachez que comme toute application, il y a beaucoup d'options apache que vous pouvez désactiver lors de la configuration, faîtes donc un : ./configure --help pour plus de détails. Commencez donc par MySQL que nous pouvons décompacter dans /tmp le temps de la compilation, vous pouvez alors rentrer dans le répertoire et faire :
-
./configure --prefix=/usr/local/mysql ; make ; make install ; ldconfig
La compilation devrait se passer sans accrocs, vous possédez maintenant un serveur Mysql prêt à être exploité. Allez dans /usr/local/mysql. Il va vous falloir à présent copier le démon vers le répertoire de démarrage, démarrer le démon, installer les bases et changer le mot de passe root, voici donc les commandes dans l'ordre (dans la commande ci-dessous, new-password est votre password, le premier mot password definit de changer le passe de root) :
-
cp libexec/mysqld /etc/init.d/ ; /etc/init.d/mysqld & ; bin/mysql_install_db ; bin/mysqladmin -u root password new-password
Apache est le suivant sur la liste. Contrairement aux autres programmes, il n'est pas question de le compiler pour le moment, on veut juste préparer le configure pour qu'il sache où l'installer, cette information va servir à PHP. Pour les autres options d'apache, faîtes un ./configure --help. Il faut commencer par le décompacter dans votre répertoire de compilations puis rentrer dans le répertoire et faire :
-
./configure --prefix=/usr/local/apache
Décompactez donc ensuite PHP et à l'intérieur du répertoire faîtes :
-
./configure --with-mysql=/usr/local/mysql --with-apache=../apache-1.3.x --enable-track-vars ; make ; make install
Après un petit peu de patience, votre version de PHP est compilée et installée comme module pour apache. Il ne reste alors qu'à retourner dans apache pour le compiler et lui demander d'inclure le module PHP, voici donc les commandes :
-
./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a ; make ; make install
Si tout va bien, les premières ligne du configure devraient vous retourner que le module php a été détecté et activé :
-
Configuring for Apache, Version 1.3.24
+ using installation path layout: Apache (config.layout)
+ activated php4 module (modules/php4/libphp4.a)
Il vous faudra ensuite éditer le fichier /usr/local/apache/conf/httpd.conf afin de déclarer php comme un extension à être interprétée par le serveur, il faut donc décommenter les ajouts de php et le mettre dans les index, voici à quoi ressemble mon fichier de configuration :
-
# Section des modules dynamiques
LoadModule php4_module extramodules/libphp4.so
# Sous Section des modules
AddModule mod_php4.c
# Section des Types d'extensions AddType application/x-httpd-php .php .php4 .php3 .phtml
AddType application/x-httpd-php-source .phps
# Section des index
DirectoryIndex index.php index.html
Si vous avez été sage, il ne reste plus qu'à démarrer le serveur apache et constater que cela marche, vous pouvez alors tenter un :
-
cd /usr/local/apache ; bin/apachectl start
Vous pouvez à présent vérifier la présence d'apache dans la liste des process par un ps -aux |grep httpd. Vous deviez en voir plusieurs apparaître car httpd.conf est paramétré pour en démarrer plusieurs instances. Pour savoir si le php marche, créez un fichier nommé phpinfo.php et tapez à l'intérieur (remplacez les & par des ?) :
-
<& echo "Test PHP" &>
Voilà donc pour la partie Installation, vous pouvez aussi installer phpMyAdmin, décompactez le dans le répertoire htdocs de /usr/local/apache. Changez son nom pour évitez de faire classique et que tout le monde puisse le trouver. Editez ensuite le config.inc.php pour changer ces lignes :
-
$cfgPmaAbsoluteUri = 'http://localhost/repertoire_phpMyAdmin';
$cfgServers[1]['user'] = 'root';
$cfgServers[1]['password'] = 'mot_de_passe';
Vous pouvez tout aussi bien créer un utilisateur mysql qui possède des droits de mise à jour, c'est d'ailleurs conseillé pour la suite car root n'est pas très sécurisé pour des échanges. Voilà pour le moment, vous devriez être capable de démarrer dans l'univers du développement web. La section qui suit contient juste quelques conseils rapides pour la compilation d'Apache 2 avec Mysql 4 et le dernier PHP.
Apache 2.0.40 / PHP 4.2.2 / MySQL 4.0.2-alpha
J'ai ici décidé de vous faire un petit guide rapide à l'installation des petits derniers. Dans l'ordre il vous faut installer : MySQL 4, Apache puis PHP. Je suis tombé sur un bug empêchant la compilation de PHP 4.2.2 mais cela est corrigé sur le CVS du 25 Août et sur les versions suivantes. Considérez que l'on installe ces programmes dans un environnement de test que j'ai nommé : /opt/web.
Décompactez MySQL 4 d'abord et faîtes : ./configure --prefix=/opt/web/mysql ; make install ; chown -R mysql.mysql /opt/web/mysql. Ceci va donc configurer, compiler et installer MySQL sur votre espace de test. Assurez vous bien d'avoir arrêté MySQL 3 s'il tourne par la commande : /etc/init.d/mysql stop . Attention : vérifiez aussi que l'utilisateur mysql du groupe mysql existe sur votre système, vous pouvez pour cela faire : cat /etc/passwd |grep mysql ; cat /etc/group |grep mysql. Il ne reste alors qu'un petit démarrage par la commande : /opt/web/mysql/libexec/mysqld -u mysql &. Il devrait tout démarrer tout seul comme un grand. S'il vous retourne une erreur de création de logs, il vous manque alors le répertoire var dans /opt/web/mysql. N'oubliez pas de changer son propriétaire pour que mysql puisse le gérer.
Installez ensuite Apache en le décompactant et en faisant : ./configure --prefix=/opt/web/apache2 ; make install. Ici encore, après installation et avant démarrage, assurez vous d'avoir arrêté votre apache (ou changez de port) en faisant : /etc/init.d/apache stop. Démarrez ensuite apache par la commande : /opt/web/apache2/bin/apachectl start.
PHP vient en dernier et demande un tout petit peu plus de configuration, ainsi voici les commandes : ./configure --with-apxs2=/opt/web/apache2/bin/apxs --enable-track-vars --with-config-file-path=/opt/web/apache2/conf/ --prefix=/opt/web/php4 --with-mysql ; make install ; cp php.ini-dist /opt/web/apache2/conf/php.ini. Ces commandes se chargeront donc d'installer php4 pour vous. Vous devez ensuite changer une variable de php.ini si vous voulez que vos scripts marchent correctement, ainsi éditez /opt/web/apache2/conf/php.ini et modifiez la variable comme ceci : register_globals = On (vous devriez la trouver sur off). Redémarrez ensuite le serveur apache par : /opt/web/apache2/bin/apachectl stop ; /opt/web/apache2/bin/apachectl start. Voila, vous disposez ici des dernières nouveautés en matière de développement.