Installation serveur LAMP

Apache

Installation apache2:sudo apt install apache2

Pour avoir accès à la page d’acceuil d’apache : sur une machine équipée d’un navigateur, aller à l’addresse : http://IP du serveur
Pour voir la version d’apache installée : sudo apache2ctl -v Pour voir le statut de apache : sudo service apache2 status
On modifie ensuite le propriétaire du dossier /var/www :
chown -R www-data:www-data /var/www

PHP

D’abord, on installe PHP + le module permettant à apache d’interragir avec PHP :
sudo apt install php php-cli libapache2-mod-php
A ce stade, PHP est installé, mais on n’a pas grand chose. Il faut installer des modules en fonction des besoins. Les modules sont nommés de la manière suivante : php-xxx. On peut les lister avec : apt search ^php-
On installe les plus courants :
apt install php-{curl,gd,intl,memcache,xml,zip,mbstring,json}
Puis pour interragir avec mysql : sudo apt install php-mysql
On recharge apache : sudo service apache2 reload

Pour tester le bon fonctionnement de PHP, on se rend dans le répertoire par défaut de la racine d’apache : cd /var/www/html
Et on créé un fichier dans lequel on demande d’afficher les infos PHP :
echo "<?php phpinfo(); ?>" > test.php
On se rend ensuite à l’adresse du serveur pour vérifier le bon affichage de la page test.php http://IP du serveur/test.php

Mariadb

sudo apt install mariadb-server
puis on demarre l’installation : mysql_secure_installation
Change the root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

On teste la connexion à la base de données : mysql -u root -p
On créé ensuite un utilisateur avec tous les droits pour ne pas utiliser le root de mariadb :
CREATE USER 'adrien'@'localhost' IDENTIFIED BY 'mdp';
GRANT ALL PRIVILEGES ON *.* TO 'adrien'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

puis exit , le serveur LAMP est installé !

Créer un virtual host

Le fichier de configuration du virtual host par défaut d’apache est le fichier /var/www/000-default.conf
On copie ce fichier pour créer notre premier virtual host:
cp 000-default.conf monpremiersite.conf et on le modifie ainsi pour une configuration de base:

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName monpremiersite.xyz
        ServerAlias www.monpremiersite.xyz
        DocumentRoot /var/www/monpremiersite

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

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
   </VirtualHost>

On crée ensuite le dossier qui va contenir monpremiersite : on se place dans le dossier /var/www et mkdir monpremiersite; pour faire un test, on crée dans ce dossier un fichier index.html : touch index.html et on y place le code ci-dessous :

<!DOCTYPE html>
<HTML>
  <HEAD>
    <TITLE>Bienvenue sur monpremiersite</TITLE>
  </HEAD>
  <BODY>
    <P>Bonjour tout le monde et bienvenue sur monpremiersite !</P>
  </BODY>
</HTML>


On active ce virtual host : a2ensite monpremiersite.conf
(pour le désactiver : a2dissite monpremiersite.conf)
On teste que tout est OK : apachectl configtest
et si c’est le cas, on recharge apache : systemctl reload apache2 (ou service apache2 reload)
Il ne reste plus qu’à tester l’accès à monpremiersite depuis un navigateur

Mise en place HTTPS

Voir ici : https://www.rezonimo.xyz/index.php/2023/09/10/vps-debian-ssl-https/

Voir et analyser les logs apache

Voir les 100 derniers accès : sudo tail -100 /var/log/apache2/access.log