LAMP - Installation et configuration d’un serveur Apache-MySQL-PHP sur Ubuntu Linux

par Alexis Metaireau le Mercredi 27 février 2008 à 3:58 :: Linux, Notes, Ubuntu

Un petit billet, sous forme de note, pour ceux qui (ré)installent (régulièrement) leur solution AMP à des fins de développement:

Apache2 + mySQL-server-5.0 + phpMyAdmin

Pour commencer, installons notre serveur Apache2, avec PHPmyAdmin et MySQL-5.0

L’habituelle ligne de commande magique:

sudo aptitude install phpmyadmin mysql-server-5.0

Ou pour ceux qui préfèrent, les liens apt:

Sélectionnez “apache2″ lorsqu’on vous demande de faire un choix de serveur.

A la fin de l’installation, si vous pouvez accéder à votre serveur web à l’adresse http;//127.0.0.1, c’est que tout à fonctionné correctement.

Configuration

Emplacement des fichiers à publier: méthode 1

Il est possible que l’emplacement du dossier www (situé dans /var/www/) ne vous convienne pas. Il est très facile de le modifier.

Ouvrez avec votre éditeur de texte favori (en mode superutilisateur) le fichier /etc/apache2/sites-avalaible/default.

Chez moi ça donne

sudo nano /etc/apache2/sites-available/default

, mais d’autres préférerons l’ interface un peu plus intuitive (et surtout avec une souris) de gedit:

gksu gedit /etc/apache2/sites-available/default &

.

Et modifiez le chemin par defaut (/var/www/) par celui que vous préférez (ça sera pour moi /home/alexis/www/). Attention, il y à deux occurrences de /var/www/ !

Pour vérifier que les modifications ont bien fonctionné, redémarrons apache et affichons la racine de notre serveur. Théoriquement, les fichiers souhaités apparaissent.

sudo /etc/init.d/apache2 force-reload

J’en profite à cette étape là pour généralement changer la directive AllowOverride NONE en AllowOverride ALL pour que mes ré-écritures d’URL fonctionnent correctement.

Si vous souhaitez en savoir plus sur les directives apache, vous pouvez télécharger le paquet apache2-doc disponible dans les dépôts officiels, ou consulter la documentation en ligne.

Emplacement des fichiers à publier: méthode 2

Vous pouvez également activer l’option User Home Directory dans le fichier httpd.conf:

# User home directories
Include etc/extra/httpd-userdir.conf

Vos fichiers sont alors disponible via http://localhost/~nom_utilisateur/ et compris dans le sous répertoire public_html de votre Home.

Merci @wazzabid pour l’astuce.

Activer l’URL Rewriting

De plus en plus de personnes et d’applications mettent à profit la ré-écriture d’url, si c’est votre cas, deux lignes suffisent pour l’activer avec apache2:

sudo a2enmod rewrite

Vous pouvez aussi désactiver un module avec la commande a2dismod

Configurer PHP

Par défaut, PHP ne notifie pas toutes les erreurs qu’il rencontre (et d’un point de vue sécuritaire, pour des sites en production, c’est bien-venu). Pour un développeur, il est quand même utile de voir s’afficher tous les avertissements.

Rien de bien compliqué: éditez le fichier /etc/php5/apache2/php.ini et changez la valeur du error_reporting (~ligne 317 chez moi). Il doit en résulter la ligne suivante:

error_reporting = E_ALL | E_STRICT

Libre à vous de choisir les options que vous préférez.

Désactiver le lancement des serveurs au démarrage

Une fois installés, les serveurs Apache et MySQL se lancent automatiquement au démarrage de votre machine, en tant que service. Vous pouvez les désactiver via Système -> Administration -> Services.

Sécurisation de mySQL

mySQL fournit un outil fort interessant peremttant d’effectuer quelques opérations courantes menant à une meilleure sécurisation du serveur mySQL de base. Il suffit de taper la commande dans un terminal:

mysql_secure_installation

Merci @Tenshu pour l’astuce!

Conclusion

Et voila, vous disposez d’une solution AMP pour le développement. N’oubliez pas de Redémarrer votre serveur Apache une fois les modifications effectuées.

Tags: , , , , , , ,

8 commentaires pour “LAMP - Installation et configuration d’un serveur Apache-MySQL-PHP sur Ubuntu Linux”

1

Sur Ubuntu, bien que cela n’ait jamais fonctionné chez moi, un simple “sudo tasksel install lamp-server” suffit. Ou alors tu lances tasksel en sudo et tu choisis “LAMP server”.

le 27 février 2008 à 16:28, par Diti

2

Je ne connaissait pas cette méthode, qui à l’air de fonctionner également. Néanmoins, l’installation avec les dépôts à l’avantage de fournir une meilleure visibilité de ce que l’on installe, et phpmyadmin permet de récupérer automatiquement les dépôts libmcrypt4, libt1-5, php5-gd et php5-mcrypt.

ps: très intéressant ce tasksel, j’y jette un oeil :)

le 27 février 2008 à 17:36, par Alexis Metaireau

3

Personnellement, afin d’avoir la racine du site dans le home, j’active une option dans httpd.conf :

# User home directories
Include etc/extra/httpd-userdir.conf

J’accède à mon site avec l’url suivante : http://localhost/~user_name/
Le dossier de mon site est : ~/public_html/

De cette manière, chaque utilisateur a son propre répertoire de développement.

le 29 février 2008 à 06:03, par Wazzaaabid

4

hum il faudrait sécuriser un peut tout ça non?
un mysql_secure_installation ne serait pas de trop par exemple …

le 29 février 2008 à 12:24, par tenshu

5

Merci pour vos astuces toutes les deux intéressantes. J’ai mis l’article à jour.

le 29 février 2008 à 15:21, par Alexis Metaireau

6

Pour activer l’option userdir on peut aussi simplement taper : a2enmod userdir, c’est plus simple. Comme ça un petit “a2enmod userdir rewrite” et on est bon ! ^^

le 7 mars 2008 à 16:47, par Denzen

7

Petite erreur : c’est /etc/apache2/sites-available/default

Perso j’ai été confronté à un problème de droit en changeant le DocumentRoot (Apache n’a pas les droits d’accès à mon répertoire personnel) du coup j’ai mis mon répertoire dans le groupe d’apache (www-data) et autorisé l’accès pour le groupe. Ca donne ça :

sudo chgrp -R www-data /home/fred/Projets
sudo chmod -R 770 /home/fred/Projets

Dans la foulée on peut aussi créer un alias pour PhpMyAdmin…

le 23 mars 2008 à 18:55, par Fred

8

Merci pour l’erreur, c’est corrigé.

Chez moi, phpMyAdmin crée directement un alias tout seul comme un grand (pas besoin de le faire à la main donc!)

le 23 mars 2008 à 20:38, par Alexis Metaireau

Laisser un commentaire

Vous pouvez utiliser les tags Html strong, em, code et blockquote; les liens sont transformés automatiquement