Apache + MySQL + PHP et PhpMyAdmin (LAMPP)

tags:

Avec ces trois compères et PhpMyAdmin (tous libres), qu'on regroupe aussi sous le nom LAMPP, ou LAMP si PhpMyAdmin n'est pas inclus, il est possible de faire un site Web de qualité et facile à mettre à jour et à poursuivre au fil du temps. Comment faire ? Il existe de la documentation mais il n'est pas inutile de rappeler quelques bases. De plus, Apache2 ou ses compères changent au fil des versions d'Ubuntu et la documentation ne suit pas toujours.

Si vous choisissez de faire un site à l'aide d'un CMS, il faut en général disposer d'Apache, de MySQL et de PHP (PHP5 car PHP4 est dépassé mais est encore utilisé par des retardataires). Votre site n'est disponible que pour vous si votre serveur Apache est un serveur local, c'est-à-dire un serveur de développement (pour faire des essais).

Il est aussi possible de transformer votre ordinateur en serveur branché sur le Web sur lequel se connecteraient des internautes qui verraient donc votre site. On parle alors de serveur de production.

FreeBSD et GNU/Linux sont les OS les plus adaptés pour les serveurs (stabilité et sécurité).

Il existe aussi quelques logiciels libres qui rassemblent Apache, MySQL et PHP (et parfois quelques autres éléments) en un tout. Ils ne peuvent pas servir pour faire un site de production (en ligne donc).

Cet article ne concerne que des utilisations en local, comme sites de développement car Apache n'est pas sécurisé en l'état.

XAMPP Pour GNU/Linux

Il existe XAMPP mais lisez d'abord la page du Wiki d'Ubuntu à ce sujet. Cette page explique aussi comment l'installer. En bref :

  1. Côté sécurité, ce n'est pas l'idéal comme le site de XAMPP l'explique
  2. C'est un sacré gros fichier (binaire TAR.GZ) et plein de trucs dont l'utilisateur n'a pas toujours besoin.

XAMPP m'a rendu bien service pour PMB en local car il est vraiment simple à utiliser et possède tout ce qu'il faut, sauf PHP-Yaz (utile seulement pour PMB) ; on peut même le lancer avec PHP4 ou avec PHP5. C'est vraiment très bien et la documentation d'Apache Friends (l'équipe qui fabrique XAMPP) est claire et complète. Pour PMB, voir Bibliothèque imaginaire.

Il est aussi possible de sécuriser XAMPP de manière très simple. Il suffit d'afficher la page de XAMPP en tapant http://localhost/ dans la barre de l'URL du navigateur et de faire ce qu'on vous dit Icon wink

Pour que XAMPP et votre site soient accessibles il faut juste penser à démarrer XAMPP, comme il est écrit sur la page de documentation :

# /opt/lampp/lampp start

Cependant, installer Apache et le reste par APT (pour les Debians) n'a rien de compliqué et vous apprendra plus de choses.

Apache2 + PHP + MySQL

Apache2 est une version plus récente d'Apache. À la place d'Apache on pourrait installer Lighttpd, qui se prononce Lighty ([laïti]), qui est plus léger et presqu'aussi bien, semble-t-il.

Voici une adaptation de ce que j'ai trouvé sur le Wiki d'Ubuntu (en). Cette marche à suivre est probablement valable pour toutes les distributions basées sur Debian.

Remarques

  • Suivez les étapes indiquées sur le Wiki bêtement (comme je l'ai fait) parce que ça marche sans histoire, même si on peut tout installer d'un coup
  • Tous les paquets supplémentaires et nécessaires sont installés par ces simples commandes
  • Les indications qui suivent devraient marcher pour toutes les Debians.
  • Il faut savoir se servir d'APT ou de Synaptic — voir Installer ou mettre à jour des logiciels sous GNU/Linux
  • Avoir vérifié sa sources.list
  • Avoir tapé la commande apt-get update pour mettre à jour les dépôts
  • Toutes les commandes suivantes sont à faire en root ou en tapant sudo avant la commande (ce qu'indique le signe # devant les commandes) — voir Root et Sudo : Linux fort en sécurité

Installer Apache 2

# apt-get install apache2

Installer PHP 5

# apt-get install php5

Installer MySQL5

# apt-get install mysql-server-5.0
# apt-get install libapache2-mod-auth-mysql
# apt-get install php5-mysql

Après avoir installé MySQL, il est vivement conseillé de protéger l'accès à MySQL par un mot de passe. Mysql vous le propose au moment de l'installation.

Utilisateur et groupe

Apache a son propre utilisateur et groupe www-data.

Pour que vous puissiez copier des fichiers ou les modifier dans le répertoire d'installation de votre site qui se trouve dans /var/www, il faut ajouter votre utilisateur (par ex. «touxou») au groupe «www-data» puis modifier les permissions de fichier pour le répertoire en question.

Ajouter un utilisateur (ici «tuxou») au groupe «www-data» :

# usermod -aG www-data tuxou

Configuration d'Apache

Au cas où, dans /etc/apache2/apache2.conf, cherchez aussi le mot «index.html» (avec l'option de recherche de votre éditeur de texte) et ajoutez index.php index.php3 au début de la liste sur la ligne commençant par «DirectoryIndex» (pas de virgules mais un espace entre les deux types d'index et les suivants). Sinon, Apache n'affichera peut-être que la liste des répertoires et fichiers de votre CMS et non vos pages.

Mesure de sécurité si vous utilisez Apache en développement (pas comme serveur). Il s'agit de l'empêcher de se connecter sur un serveur extérieur quelconque lors de votre connexion à l'internet et faire en sorte qu'il ne serve que votre domaine local (http://localhost ou http://127.0.0.1)
Modifiez le fichier :

# vim /etc/apache2/ports.conf

Tapez ces mots puis enregistrer le fichier :

Listen 127.0.0.1:80

Manuel ultra rapide de Vim :

  • Pour écrire dans Vim, appuyez sur la touche <INSER>
  • Pour sortir du mode d'écriture, appuyez sur la touche <Échap>
  • Pour enregistrer le fichier modifié, tapez :wq

Ensuite, il faut redémarrer Apache, avec une commande qui marche aussi pour MyQSL, en remplaçant apache2 par mysql) :

# /etc/init.d/apache2 restart

Si besoin, modifiez le fichier de configuration de PHP pour qu'il soit lié à MYSQL (pour qu'ils «se causent») :

# gedit /etc/php5/apache2/php.ini

Supprimez le point-virgule devant la ligne commençant par ;extension=mysql.so puis redémarrez Apache. NB: je ne trouve plus cette ligne depuis la version Ubuntu Hardy et tout marche quand même.

NB : Pour arrêter Apache, remplacez restart par stop, et pour le démarrer, remplacez restart par start.

Pour vérifier qu'Apache fonctionne après l'avoir redémarré, ouvrez votre navigateur et tapez dans le champ de l'URL: http://localhost/ et validez ou cliquez sur une icône adéquate : une jolie page de présentation d'Apache s'affiche. Si c'est une page d'index qui s'affiche, cliquez sur le répertoire «Apache2_default» et une page devrait apparaître.

Pour vérifier que PHP fonctionne et ce qu'il vous offre, faites un nouveau fichier :

# vim  /var/www/phpinfo.php

Et mettez-y juste le code PHP suivant puis enregistrez-le.

<?php
    phpinfo
();
?>

Visionnez le fichier dans le navigateur en tapant dans le champ de l'URL : http://localhost/testphp.php

Pour que votre site soit visible dans le navigateur, il peut être nécessaire de changer les permissions de fichiers sur le répertoire dans lequel est installé votre CMS, par exemple /var/www/tuxou_site :

# chown -R www-data:www-data /var/www/tuxou_site
# chmmod -R g+w /var/www/tuxou_site

R = recursive (tous les répertoires et les fichiers pourront être manipulés par «tuxou»).
www-data:www-data : le premier «www-data» est l'utilisateur, le 2e est le groupe.

En effet, /var/www appartient par défaut au root mais maintenant tuxou, ajouté au groupe www-data peut faire n'importe quoi dans le répertoire /var/www/tuxou_site et uniquement là. En revanche, tuxou ne peut rien installer dans /var/www — le répertoire tuxou_site a été installé en mode root.

PhpMyAdmin

Enfin, vous pouvez ajouter PhpMyAdmin, une interface graphique pour créer et administrer les bases de données MYSQL. C'est très pratique. MySQL, en ligne de commande, peut paraître rebutant.
Installation :

# apt-get install phpmyadmin

Pour utiliser PhpMyAdmin, il faut taper dans la barre de l'URL du navigateur :
http://localhost/phpmyadmin/
Vous verrez ainsi que pour fonctionner il exige que vous inscriviez une expression secrète (blowfish_secret) qui servira pour la connexion à PhpMyAdmin.

Dans Ubuntu 8.04 (Hardy Heron), le fichier qui contient le dit secret est :
/var/lib/phpmyadmin/blowfish_secret.inc.php. Il s'agit de copier la ligne suivante (les xxxx... remplacent la suite de caractères à ne dévoiler à personne !) :

$cfg'blowfish_secret' = 'xxxxxxxxx';

Maintenant il faut coller cette ligne dans le fichier /etc/phpmyadmin/config.inc.php. Ouvrez ce fichier en root pour le modifier:

# vim /etc/phpmyadmin/config.inc.php

Collez la ligne magique en début de fichier en prenant soin que tout a été bien copié.

Vous devriez maintenant pouvoir accéder à toutes les fonctions de PhpMyAdmin. Si MySQL, au moment de son installation, ne vous avait pas demandé de mettre un mot de passe pour MySQL (pour la connexion à MySQL), c'est le moment de le faire avec PhpMyAdmin :

  • Tapez http://localhost/phpmyadmin/ dans la barre de l'URL de votre navigateur; en jargon, on dit : «faites pointer votre navigateur sur PhpMyadmin» :-\
  • La page qui s'affiche vous demande un login et un mot de passe (elle vous propose aussi de choisir la langue de votre choix)
  • Tapez root pour le login
  • Laissez le champ du mot de passe vide car vous n'avez pas encore de mot de passe pour accéder à MySQL
  • Cliquez sur le bouton «Go» ou «Valider»
  • Vous voici dans PhpMyAdmin
  • Cliquez sur «Privilèges» dans le panneau central
  • Cliquez sur l'icône «Modifier» (ou «Éditer») au bout de la ligne qui indique «root localhost»
  • Dans la page qui s'affiche trouvez le coin «Changer le mot de passe» (déroulez la page) :
  • Cliquez sur «Mot de passe» pour activer cette option
  • Tapez un mot de passe dans le champ et dans le champ suivant pour vérification
  • Cliquez sur le bouton «Go» ou «Valider»
  • Cliquez ensuite sur l'icône «Accueil» puis sur celle de déconnexion de PhpMyAdmin : panneau latéral, petite icône de maison, puis petite icône verte (une petite bulle s'affiche pour vous dire ce que fait telle ou telle icône)
  • Vous retrouvez la page de login de PhpMyAdmin
  • Vous pouvez vous connecter avec votre login (root) et votre mot de passe pour vérifier que tout va bien.

NB : il est possible de créer ce mot de passe directement dans MySQL ; ce n'est pas toujours très amusant (ligne de commande) mais beaucoup plus rapide !

Et maintenant ?

Il vous reste à créer vos bases MySQL avec PhpMyAdmin ou dans la console de MySQL (plus rapide dans le fond) avant l'installation du CMS :
Faire une base de données avec MySQL.

Commentaires

Merci pour votre encouragement sur Biblinuxiens à propos de PMB.
J'ai suivi votre procédure. Phpmyadmin installé, j'ai eu une erreur 2002 lorsque j'ai voulu me connecter à la base de données Mysql. Avec la commande grep, je n'ai pas eu de réponse, j'en ai donc conclu que Myqsl était peut-être mal installé.
Après des recherches sur le web auxquelles je n'ai pas tout compris !), je suis allé sur la page Mysql sur doc.ubuntu-fr.org et j'ai tout simplement cliqué sur le lien "installer le paquet mysql-server" ce qui a relancé l'installation de mysql. Juste après, sans réinstallation de phpmyadmin, j'ai pu me connecter sans souci et créer une base "Bibli"

Merci pour ce message, jeant-22 et bravo pour l'installation. Bonne bibliothéque avec PMB Smile