LAMP est un acronyme pour Linux, Apache, MySQL, PHP. C’est une pile logicielle comprenant le système d’exploitation, un serveur HTTP, un système de gestion de bases de données et un langage de programmation interprété, et qui permet de mettre en place un serveur web
Méthode recommandée : installation des paquets
Cette méthode consiste à installer les paquets nécessaires pour Apache, PHP et MySQL :
sudo apt install apache2 php libapache2-mod-php mysql-server php-mysql
ou si vous préférez opter pour MariaDB au lieu de MySQL :
sudo apt install apache2 php libapache2-mod-php mariadb-server php-mysql
(attention le paquet php installe directement la dernière version de php)
La pile LAMP est alors installée. Cependant la plupart des scripts PHP (CMS, forums, applications web en tout genre) utilisent des modules de PHP pour bénéficier de certaines fonctionnalités.
Voici comment installer les modules les plus courants :
sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip
Au passage, nous allons en profiter pour donner des droits au dossier d’apache qui vous permettra de facilement administrer les sites. Pour cela, lancez les commandes suivantes :
sudo chown -R www-data /var/www/html/ sudo chmod -R 770 /var/www/html/
Vous allez en premier lieu supprimer le fichier « index.html » dans le répertoire « /var/www/html ».
sudo rm /var/www/html/index.html
Puis créez un fichier « index.php » dans ce répertoire, avec cette ligne de commande
echo "<?php phpinfo(); ?>" > /var/www/html/index.php
phpMyAdmin
L’installation de PHPMyAdmin se fait très simplement, via le gestionnaire de paquets, en utilisant la commande suivante :
sudo apt install phpmyadmin
Lors de l’installation, il vous sera posé quelques questions auxquelles il faut répondre avec soin :
-
Créer la base de données phpmyadmin : oui
-
Définir un mot de passe pour l’utilisateur MySQL phpmyadmin :
-
L’écran suivant demandera la confirmation de ce mot de passe (a priori cette étape n’existe plus depuis Bionic 18.04, voir paragraphe 3.3 plus bas).
-
Indiquer le mot de passe de l’utilisateur MySQL « root » tel que défini à l’installation de mysql-server :
-
Choisir le serveur web à configurer automatiquement (utiliser les flèches du clavier ou la touche tab pour se déplacer et la barre d’espace pour sélectionner/désélectionner) :
Si url <localhost/phpmyadmin> affiche
The requested URL /phpmyadmin was not found on this server
Taper :
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
sudo service apache2 restart
Instead, create a new superuser account with a different username.
In terminal, log into MySQL as root. You may have created a root password when you installed MySQL for the first time or the password could be blank, in which case you can just press ENTER when prompted for a password.
sudo mysql -p -u root
Now add a new MySQL user with the username of your choice. In this example we are calling it pmauser (for phpmyadmin user). Make sure to replace password_here with your own. You can generate a password here. The % symbol here tells MySQL to allow this user to log in from anywhere remotely. If you wanted heightened security, you could replace this with an IP address.
CREATE USER 'pmauser'@'%' IDENTIFIED BY 'password_here';
Now we will grant superuser privilege to our new user.
GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'%' WITH GRANT OPTION;
You should now be able to access phpMyAdmin using this new user account.
Serveur FTP
vsftpd – Installation du serveur FTP
vsftpd est un démon FTP disponible dans Ubuntu. Il est facile à installer, à configurer et à entretenir. Pour installer vsftpd vous pouvez exécuter la commande suivante :
sudo apt install vsftpd
Configuration d’un FTP anonyme
Par défaut, vsftpd n’est pas configuré pour permettre le téléchargement anonyme. Si vous souhaitez activer le téléchargement anonyme, modifiez le fichier de configuration /etc/vsftpd.conf en changeant :
anonymous_enable=Yes
Lors de l’installation, un utilisateur ftp est créé avec un répertoire personnel nommé /srv/ftp. Il s’agit du répertoire FTP par défaut.
Si vous souhaitez modifier cet emplacement en /srv/files/ftp par exemple, il suffit de créer un répertoire dans un autre emplacement et de changer le répertoire personnel de l’utilisateur /srv/files/ftp :
sudo mkdir /srv/files/ftp sudo usermod -d /srv/files/ftp ftp
Les changements effectués, redémarrez vsftpd :
sudo restart vsftpd
Enfin, copiez les fichiers et répertoires que vous voulez rendre disponibles via le serveur FTP anonyme dans /srv/files/ftp, ou alors /srv/ftp si vous souhaitez utiliser le dossier par défaut .
Configuration d’un serveur FTP avec authentification des utilisateurs
Par défaut, vsftpd est configuré pour authentifier les utilisateurs système et leur permettre de télécharger des fichiers. Si vous voulez que les utilisateurs puissent envoyer des fichiers sur le serveur, modifiez /etc/vsftpd.conf :
write_enable=YES
Redémarrez maintenant vsftpd :
sudo restart vsftpd
Maintenant lorsque des utilisateurs de votre système se connectent au FTP, leur répertoire racine sera leur répertoire personnel (/home/utilisateur) dans lequel ils pourront télécharger (download/upload), créer des répertoires etc…
De même, par défaut, les utilisateurs anonymes ne sont pas autorisés à envoyer des fichiers vers le serveur FTP. Pour modifier ce paramètre, vous pouvez supprimer le commentaire de la ligne suivante puis redémarrer vsftpd :
anon_upload_enable=YES
Autoriser des téléchargements (upload) anonymes d’Internet vers le serveur est une faille de sécurité majeure. Il est préférable de ne pas l’autoriser pour des serveurs branchés directement sur Internet.
Le fichier de configuration est composé de plusieurs paramètres de configuration. Les informations à propos de chaque paramètre sont disponibles dans le fichier de configuration. Vous pouvez aussi vous référer à la page du manuel (man page), man 5 vsftpd.conf pour les détails de chaque paramètre.
Sécuriser le serveur FTP
Des options de /etc/vsftpd.conf permettent de sécuriser un tant soit peu vsftpd. Par exemple, les utilisateurs peuvent être confinés dans leur répertoire personnel en dé-commentant :
chroot_local_user=YES
Vous pouvez aussi définir les utilisateurs qui seront confinés dans leur répertoire personnel (home) :
chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
Après avoir dé-commenté l’option ci-dessus, créez le fichier /etc/vsftpd.chroot_list contenant la liste des utilisateurs à restreindre. Mettez un utilisateur par ligne. Redémarrez ensuite vsftpd :
sudo restart vsftpd
De manière similaire, le fichier /etc/ftpusers contient les utilisateurs qui ne sont pas autorisés à se connecter au serveur FTP. la liste par défaut inclut root, daemon, nobody, etc. Écrivez dans cette liste les utilisateurs que vous ne souhaitez pas voir connectés au FTP.
FTP can also be encrypted using FTPS. Different from SFTP, FTPS is FTP over Secure Socket Layer (SSL). SFTP is a FTP like session over an encrypted SSH connection. A major difference is that users of SFTP need to have a shell account on the system, instead of a nologin shell. Providing all users with a shell may not be ideal for some environments, such as a shared web host. However, it is possible to restrict such accounts to only SFTP and disable shell interaction. See the section on OpenSSH-Server for more.
Pour configurer FTPS, modifiez /etc/vsftpd.conf et ajoutez en fin de fichier :
ssl_enable=Yes
Prenez garde aux options certificat et clef :
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Par défaut, ces options sont définies dans le certificat et la clé fournie par le paquet ssl-cert. Dans un environnement de production, ceux-ci doivent être remplacés par un certificat et une clé générés pour l’hôte spécifique. Pour plus d’informations sur les certificats, voir Certificats.
Redémarrez maintenant vsftpd, et les utilisateurs non-anonymes seront désormais forcés d’utiliser FTPS :
sudo restart vsftpd
Pour permettre aux utilisateurs avec un shell /usr/sbin/nologin de se connecter au FTP, mais sans accès shell, il est nécessaire d’ajouter le shell nologin au fichier /etc/shells :
# /etc/shells: shells de connexion valides /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin
En effet, par défaut, vsftpd utilise PAM pour l’identification et le fichier de configuration /etc/pam.d/vsftpd stipule :
auth required pam_shells.so
Le module PAM shells a pour effet de n’autoriser que les shells listés dans le fichier /etc/shells.
Les clients FTP les plus populaires peuvent être configurés pour se connecter en utilisant FTPS. Le client FTP en ligne de commande lftp a aussi la possibilité d’utiliser FTPS.



