Sélectionner une page

Installer et configurer LAMP sur Ubuntu

Marche à suivre pour installer et configurer un serveur LAMP (Linux, Apache, MySQL, PHPMyAdmin) sur notre OS préféré

Logo non-officiel de LAMP

Edit 18.01.2016 : Correction de la partie “Protéger /var/www”
Edit : Rajout de trucs et astuces à la fin de l’article.

NB : Comme cet article attire beaucoup de visiteurs sur ce site, n’hésitez pas à laisser un commentaire afin d’améliorer les parties qui ne vous semblent pas claires 🙂
Merci d’être passé, et bonne lecture !

Voici comment, en quelques étapes simples, installer un serveur web fonctionnel sur une machine tournant sous Ubuntu. On verra ensuite quelques réglages qui peuvent vous être utile.

Sources

Installation de LAMP

Cela se résume à saisir cette ligne de commande et entrer son mot de passe admin :

$ sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

Cette commande lance le programme apt-get en mode install avec les droits administrateurs (sudo), et installe les paquets nécessaires à une solution LAMP fonctionnelle. C’est fini !

Pour tester que cela fonctionne, ouvrez un explorateur web et allez à la page “localhost” ou l’adresse 127.0.0.1. Si ça a marché, vous devriez voir quelque chose comme ça :

It Works!

Message s’affichant par défaut avec une nouvelle installation LAMP

Si ce message n’apparaît pas, consultez la documentation sur Ubuntu-fr.

Protéger /var/www

Le répertoire par défaut d’Apache (dans lequel on veut mettre ses pages web) est /var/www, qui est sous droits administrateurs. Ce n’est jamais recommandé de travailler dans un tel dossier, c’est pourquoi nous allons en protéger son accès. Exécutez cette commande pour éditer le fichier de configuration :

$sudo gedit /etc/apache2/sites-available/000-default.conf

Ou, pour les versions d’Ubuntu plus anciennes que 14.04 ou Debian et ses dérivées :

$ sudo gedit /etc/apache2/sites-available/default

Editez le fichier à la section <Directory /var/www> et changez :

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

en :

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1        # local
    Allow from 192.168.1.0/24   # reseau
</Directory>

Ainsi seule votre machine et celles du réseau 192.168.1.0 auront accès à ce répertoire.

Modifier le répertoire de travail

Commençons par créer le répertoire où nous voulons travailler. Par exemple :

$ mkdir /home/nicolas/www

Ensuite donnez-lui les droits d’accès nécessaires :

sudo chown -R $USER:users /home/nicolas/www

Remarque : Cela ne fonctionnera que si le dossier est dans une partition Linux non-cryptée.

Ensuite on configure une redirection (un alias) pour qu’Apache puisse accéder à ce répertoire :

sudo ln -s /home/nicolas/www /var/www

Et on ajoute le code suivant à la ligne après la balise </Directory> :

## ZONE PUBLIQUE
Alias /public /home/nicolas/www/public
<Directory /home/nicolas/www>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

## ZONE PRIVEE
Alias /private /home/nicolas/www/private
<Directory /home/nicolas/www>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1            # Local
    Allow from 192.168.1.0/24       # Réseau
    Allow from .w3.org              # W3C
    Allow from sandbox.paypal.com   # Paypal
</Directory>

Il faut finalement ajouter un lien symbolique pour qu’Apache puisse voir ces dossiers depuis la racine du serveur :

sudo ln -s /home/nicolas/www/public /var/www/public
sudo ln -s /home/nicolas/www/private /var/www/private

Voilà, vous pouvez commencer à développer en PHP localement, et de manière agréable. Vous pouvez aussi lire les liens cités en source pour aller plus loin !

Tips & Tricks

Corriger lorsque apache2 n’arrive pas à déterminer le nom de domaine

sudo sh -c 'echo "ServerName localhost" >> /etc/apache2/conf.d/name' && sudo service apache2 restart

Source : xubuntugeek.blogspot.ch

20 Commentaires

  1. zakaria yam

    slt!
    j’ai essayé d’installer par le mm procedure que la tienne mais ça ne passe pas; je reçois un message qui est:

    Lecture des listes de paquets... Fait
    Construction de l'arbre des dépendances       
    Lecture des informations d'état... Fait
    Certains paquets ne peuvent être installés. Ceci peut signifier
    que vous avez demandé l'impossible, ou bien, si vous utilisez
    la distribution unstable, que certains paquets n'ont pas encore
    été créés ou ne sont pas sortis d'Incoming.
    L'information suivante devrait vous aider à résoudre la situation : 
    
    Les paquets suivants contiennent des dépendances non satisfaites :
     apache2 : Dépend: apache2-mpm-worker (= 2.2.22-1ubuntu1.4) mais ne sera pas installé ou
                        apache2-mpm-prefork (= 2.2.22-1ubuntu1.4) mais ne sera pas installé ou
                        apache2-mpm-event (= 2.2.22-1ubuntu1.4) mais ne sera pas installé ou
                        apache2-mpm-itk (= 2.2.22-1ubuntu1.4) mais ne sera pas installé
               Dépend: apache2.2-common (= 2.2.22-1ubuntu1.4) mais ne sera pas installé
     libapache2-mod-php5 : Dépend: apache2-mpm-prefork (> 2.0.52) mais ne sera pas installé ou
                                    apache2-mpm-itk mais ne sera pas installé
                           Dépend: apache2.2-common mais ne sera pas installé
     mysql-server : Dépend: mysql-server-5.5 mais ne sera pas installé
    E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
    Réponse
    • Antoine

      Salut, ça fait un moment et j’imagine qu’il a réglé son problème mais je post quand même au cas où quelqu’un est bloqué au même point.
      Il m’arrivais la même chose et j’ai réglé mon problème avec un apt-get -f upgrade. Voilà voilà

      Réponse
  2. Nicolas

    Salut Zakaria !
    Sur ce blog, je ne donne pas d’aide en direct. Cependant, je pense que le problème vient de ta version d’Ubuntu qui est en unstable.
    Tu auras probablement plus d’aide si tu t’adresses à un forum spécialisé 😉
    Bonne recherche !

    Réponse
  3. kiki

    Article très utile, exactement ce que je cherchais pour monter un serveur de developpement et créer des fichiers en moins de deux dans mon répertoire personnel sans me casser les pieds à modifier les droits autant en édition qu’avec FTP etc.
    J’ai pris des notes mais je sais que j’y reviendrais dans quelque mois voire quelques années, j’espère juste qu’à ce moment là l’article sera toujours hébergé avec la même URL.
    Merci pour ta contribution Nicolas.

    Réponse
    • Nicolas

      Merci Kiki.
      Pour répondre à ta question : c’est le but de ce blog pour moi. Donc oui, il y a de fortes chances que cet article soit encore accessible à cette adresse dans quelques années 😉
      A bientôt !

      Réponse
  4. tigitz

    Merci pour les infos, cependant en mettant à jour mon apache pour supporter la dernière version de php par le ppa ppa:ondrej/php5 ça a mis à jour mon apache en version 2.4.6 et les règles ne marchent plus.

    Quand j’accède à localhost/public il me dit que c’est “Forbidden”. Des idées ?

    Réponse
    • Nicolas

      Bonjour Tigitz,
      Essayez de vérifier la gestion des droits d’accès aux dossiers de votre serveur, dans le fichier httpd.conf.
      Vous devez avoir quelque chose comme ça (source) :

      # module d'information sur le statut du serveur
      
          
              SetHandler server-status
              Order deny,allow
              Deny from all
              Allow from 127.0.0.1
          
      
      

      Ensuite essayez d’activer le module userdir :

      $ sudo a2enmod userdir

      Et essayez d’aller vérifier sa configuration dans le fichier ci-après :

      /etc/apache2/mods-available/userdir.conf

      Vous devriez avoir quelque chose de ce type :

      
              UserDir public_html
              UserDir disabled root
      
              
                      AllowOverride FileInfo AuthConfig Limit Indexes
                      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                      
                              Order allow,deny
                              Allow from all
                      
                      
                              Order deny,allow
                              Deny from all
                      
              
      
      

      Bonne chance !

      Réponse
  5. Ylan

    Salut,
    je n’ai pas compris la partie ou tu parle de créer un Alias et “d’ajouter un code après la balise ” ou est cette balise? o_o

    Réponse
    • Nicolas

      Salut Ylan,
      C’est expliqué plus clairement sur cette page, au point 2.1 :
      http://doc.ubuntu-fr.org/tutoriel/lamp_repertoires_de_travail

      Il faut bien lire et comprendre cette page, elle décrit comment on peut modifier les répertoires de travail par défaut, et attribuer des permissions sur lesdits répertoires.

      Bonne lecture !

      Réponse
  6. elkwaet

    Merci pour ce tuto. C’est conforme à ce que j’ai fais aussi pour l’installation de Lamp.
    Bon, moi, jai installer Phpmyadmin apres Lamp, et j’arrive à accéder PMA et pour les sites, jai eu à créer plusieurs repertoires dans /var/www de appache pour y unzipé mes sites Joomla (d’apres un autre tuto).
    Maintenant, je veux savoir si l’on ne devrait pas avoir la possibilité de modifier aisément nos fichiers et sous répertoires des sites (manuellement) si on les mets dans ce nouveau dossier (soit: /home/nicolas/www comme dans ton tuto…. nicolas#remplacé par mon nom d’utilisateur Ubuntu)

    Réponse
    • Nicolas

      Bonjour elkwaet,
      Je ne suis pas sûr de comprendre la question, mais il me semble que c’est ce que je traite dans la partie “Modifier le répertoire de travail” ci-dessus.
      Si on indique à Apache que notre répertoire de travail se situe dans notre /home, on pourra modifier plus aisément les fichiers et répertoires de travail, alors qu’il faut les droits admin pour modifier le contenu dans /var/www.

      Réponse
  7. Wuilliet

    $ sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

    Ou faut-il inscrire cette phrase

    Réponse
    • Nicolas

      Il faut la saisir dans le terminal de votre machine (sous Linux), et sans tapper le ‘$’ du début.
      Vous pouvez faire le raccourci-clavier Ctrl+Alt+T pour ouvrir votre terminal directement.

      Réponse
  8. Jonathan

    Bonjour Nicolas,

    en suivant ton tuto, merci btw, sudo gedit /etc/apache2/sites-available/default
    est vide.

    Normal?

    Le post date un peu, ce n’est peut-être plus d’actu?

    merci!

    Réponse
  9. Badson

    Oui c’est vrai. Je suis sous ubuntu 15.10, je viens de resoudre le probleme comme ca. En fait, j’avais fais le tuto en utilisant le reportoire /var/www/ au lieu de /var/www/html. Ce qui a fait que je n’arrive pas a acceder a localhost par exemple avec Chromium, sauf avec 27.0.0.1. Idem pour acceder a mon localhost avec un autre PC. Je viens de modidifier et c’est parfait. Encore merci pour @nicolas et les autres.

    Réponse
  10. Sébastien

    Bonjour,
    J’ai suivi le tuto de la doc Ubuintu-fr et celui ci et Git ne peut pas ecrire dans les dossiers web qui sont dans mon Home, idem pour un WordPress qui ne sait pas mettre a jour le .htaccess a cause de permission non accordée…
    Dans le home, le dossier contenant les projets web doivent avoir quel droit? et appartenir à sebastien:sebastien ou sebastien:users?

    merci d’avance

    Réponse
    • Nicolas

      Bonjour Sébastien,
      Que donne un ls -lau sur vos dossiers web ? Il est possible que le user utilisé par Apache n’ait pas accès à votre dossier personnel, et il faudrait ajouter ces droits sur vos dossiers.

      Réponse
  11. Jennelly

    slt
    je viens vous demandé de l’aide ,depuis la 10 j ai installer ubuntu 16.04 server afin de configurer grr en locale, après avoir finir d’installer Apache ,mysql et phpmyadmin , j ai décompressé le dossier grr dans le dossier /var/www .Je n’arrive pas à accéder à l’interface de configuration de grr à travers le navigateur bien que j arrive à accéder à l interface de phpmyadmin sans problème.
    merci bien
    à vous

    Réponse
    • Nicolas

      Bonjour Jennelly,
      C’est sûrement un problème de droits. Je vous recommande la lecture de la partie “Modifier le répertoire de travail” de cet article, ou cet article, qui vous expliquera comment déplacer vos fichiers dans votre répertoire local, et ainsi pouvoir accéder à grr.
      Bonne chance !

      Réponse

Répondre à Jonathan Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *