
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