Installation serveur LAMP sur debian
On commence par mettre à jour le cache des paquets :
apt update && apt full-upgrade -y
Installe le paquet "apache2"
apt install -y apache2
Pour qu'Apache démarre automatiquement en même temps que Debian, saisissez la commande ci-dessous (même si normalement c'est déjà le cas) :
systemctl enable apache2
Cacher la version d'Apache Pour cacher la version d'Apache, il faut changer quelques options dans sa configuration qui se situe par défaut dans "/etc/apache2". Dans ce dossier racine, il y a plusieurs sous-dossiers et fichiers. Le fichier de configuration principal "apache2.conf" appelle les fichiers du dossier "conf-enabled". Le fichier "/etc/apache2/conf-enabled/security.conf" contient les options ServerTokens et ServerSignature que nous allons modifier. On peut aussi modifier ces options directement via "apache2.conf" en ajoutant ces directives à la fin du fichier. Modifiez ce fichier (ou ajoutez les lignes à la fin de "apache2.conf") :
nano /etc/apache2/conf-enabled/security.conf
On va venir remplacer :
ServerTokens OS
Par le niveau le plus restrictif :
ServerTokens Prod
Cela va permettre de masquer la version d'Apache. Néanmoins il restera toujours la mention "Apache Server". En complément, si l'on veut masquer la mention "Apache Server", il faut venir remplacer :
ServerSignature On
Par :
ServerSignature Off
On enregistre et on ferme le fichier de configuration. Après toute modification, il faut recharger la nouvelle configuration du serveur Apache pour qu'elle soit prise en compte :
systemctl restart apache2
Avant d'aller plus loin, je vous recommande d'activer quelques modules d'Apache qui sont indispensables, notamment pour faire tourner un site Internet. Commençons par le module utilisé pour la réécriture d'URL :
a2enmod rewrite
L'occasion de découvrir la commande "a2enmod" qui sert à activer un module. A l'inverse, la commande "a2dismod" sert à désactiver un module. Activons trois :autres modules : "deflate" pour la gestion de la compression, notamment en gzip, pour utiliser la mise en cache des pages sur votre site "headers" afin de pouvoir agir sur les en-têtes HTTP "ssl" pour gérer les certificats SSL et donc l'utilisation du protocole HTTPS
a2enmod deflate
a2enmod headers
a2enmod ssl
Après avoir activé ou désactivé un module, ou modifié la configuration d'Apache, il faut redémarrer le service apache2 :
systemctl restart apache2
Installation PHP
apt-get install -y php
Paquets supplémentaire php
apt-get install -y php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
Installation Mysql/Mariadb
apt-get install -y mariadb-server
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y
New password: **************
Re-enter new password: **************
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
mysql -u root -p
show databases;
Après un changement de configuration de MariaDB, vous devez redémarrer le service :
systemctl restart mariadb