Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

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