Table des matières

LAMP : un serveur HTTP sous Linux, Apache 2, MySQL et PHP

Un serveur LAMP est un serveur Web basé sur Apache

L'acronyme LAMP signifie Linux Apache MySQL PHP :

Linux
système d'exploitation du système
Apache
serveur HTTP
MySQL
système de gestion de base de données.
PHP/Python/Perl
langage de programmation associé

Pour d'autres solutions avec Lighttpd et Sqlite (moins gourmands en ressources) :

Pré-requis

  1. Définir l'emplacement de la racine du serveur :Déplacer la racine (répertoire de base) d'un serveur HTTP

Autres étapes

Installation

L'installation se fait nécessairement en ligne de commande, pour pouvoir répondre aux demandes.

  1. Mettez à jour le système :

    ...@...:~ $ sudo apt update
    ...@...:~ $ sudo apt upgrade
    ...@...:~ $ sudo apt dist-upgrade
    ...@...:~ $ sudo apt autoremove
    ...@...:~ $ sudo apt autoclean

  1. Installez Apache, PHP et Mariadb :

    ...@...:~ $ sudo apt install {apache2,php,php-{pear,mysql},libapache2-mod-php,mariadb-server}

    • Apache : serveur web 1)
    • PHP : langage interprété, pour rendre un site dynamique (l’utilisateur envoie des informations au serveur qui lui renvoie les résultats modifiés en fonction de ces infos).
    • Lors de l’installation de Mariadb, un mot de passe est demandé pour le compte administrateur MySQL (admin), attention à bien le retenir, car il sera utilisé plus tard.
    • Mariadb : SGBD libre et puissant
  2. Installez Adminer (remplace avantageusement PHPMyAdmin) : interface simplifiée en PHP pour manipuler les bases de données SQL
  3. Testez :
    1. Apache : ouvrez la page http://IP_du_serveur (par exemple http://192.168.0.32). Si tout va bien, vous obtenez :
    2. PHP :
      1. créez le fichier :
        /var/www/html/php/index.php
        <?php phpinfo(); ?>

      2. Ouvrez la page http://IP_du_serveur/php (par exemple http://192.168.0.32/php). Elle doit afficher :
    3. Mariadb (sur la machine serveur) :

      ...@...:~ $ mysql -u admin -pVotreMotDePasse
      Welcome to the MariaDB monitor.  Commands end with ; or \g.
      ...
      MariaDB [(none)]> quit;
      Bye ...@...:~ $

    4. Adminer : accédez à l'adresse http://IP_du_serveur/adminer (par exemple http://192.168.0.32/adminer)
  4. Déplacer la racine du site
    1. Sauvegardez l'original du fichier /etc/apache2/sites-available/000-default :

      ...@...:~ $ sudo cp /etc/apache2/sites-available/000-default /etc/apache2/sites-available/000-default.original

    2. Éditez avec les droits d'administration le fichier /etc/apache2/sites-available/000-default pour y remplacer les occurrences de /var/www/html par le chemin voulu (par exemple /[DISQUE]/www/html :
      • Remplacez

        DocumentRoot /var/www/html

        par

        DocumentRoot /media/[DISQUE]/www

      • Remplacez

        <Directory /var/www/>

        par

        <Directory /media/[DISQUE]/www/html/>

    3. Redémarrez le serveur apache par :

      ...@...:~ $ sudo apachectl restart

    4. Désormais, en visitant l'adresse http://IP_du_serveur, on aboutit dans le répertoire /media/[DISQUE]/www.
  5. Installez les modules rewrite et vhost_alias :

    ...@...:~ $ sudo a2enmod rewrite vhost_alias
    ...@...:~ $ sudo apachectl restart

  6. Créez avec les droits d'administration le fichier /etc/conf-available/monsite.tld.conf (monsite.tld = adresse de votre site sur internet pour les visiteurs) :

    /etc/conf-available/monsite.tld.conf
    (...)
    ServerName monsite.tld

  7. Activez cette configuration et relancez apache :

    ...@...:~ $ sudo a2enconf monsite.tld
    ...@...:~ $ sudo apache2ctl restart

Exemple avec localhost :

/etc/apache2/conf-available/localhost.conf
ServerName localhost
<Directory />
        Options Indexes FollowSymLinks Multiviews
        AllowOverride All
        Require all denied
</Directory>

<Directory /var/www/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
</Directory>
...@...:~ $ sudo a2enconf localhost
...@...:~ $ sudo apache2ctl restart

Installation des Modules PHP

Vous pouvez installer des modules de PHP.

Pour lister les modules PHP5 disponibles, tapez ceci :

$ apt-cache search --names-only ^php-

cas particulier du Raspberry Pi

Installez ceux qui vous intéressent, en particulier :

$ sudo apt install php-dev php-gd php-curl php-pear dh-php dh-make

cas particulier du Raspberry Pi

Vous pouvez aussi installer les paquets :

$ sudo apt install php-cgi php-idn php-imagick php-imap php-intl php-mcrypt php-memcache php-ming php-ps php-pspell php-recode php-snmp php-tidy php-xmlrpc php-xsl

cas particulier du Raspberry Pi

Configuration

Nouveautés de la version 2 de Apache