Ceci est une ancienne révision du document !
Installer serveur Web complet : PHP / MySQL / phpmyadmin
Cas où on veut installer un serveur web complet à partir de Debian , avec PHP (plusieurs versions possibles), MySQL (mariaDB) et Phpmyadmin pour une administration simplifiée
Cette installation pourrait se faire dans un conteneur de Proxmox par exemple et héberger un ou des sites web comme Booked.
Doc : https://linuxhint.com/install_phpmyadmin_debian_10 (mais ici apache)
Conseils de RomainR : Installer Debian + Nginx + PHP-FPM pour pouvoir personnaliser plusieurs version de PHP
Cas de http://web.cemea.lan
1. Installation Debian 10
Installer Debian 10 à partir d'un template fourni.
- Créer un CT, template Debain-10-standard avec un compte root, 1Go de Ram, 512 Mo de swap, 10 Go de disque, firewall désactivé.
- Se connecter en mode console en root via Proxmox (xterm.js), editer le fichier /etc/ssh/sshd_config et changer le mode d'autorisation de connexion de root :
PermitRootLogin Yes
Quitter l'édition du fichier sshd_config et relancer le service ssh
systemctl restart sshd.service
- Identifier son IP (ip a) et se connecter en SSH dessus depuis un client externe. La connexion avec root devrait fonctionner.
ssh root@ip_CT
Mettre à jour le CT
apt-get update && apt-get dist-upgrade
2. Installer MysqL (mariadb)
Installation du paquet mariadb et vérification du service :
apt install mariadb-server mariadb-client systemctl status mariadb
doit renvoyer “enabled” (lancé au démarrage) et “active (running)”
Sécuration MysqL avec :
mysql_secure_installation
Par défaut le mot de passe root de mysql est vide, donc
Enter current password for root (enter for none): Enter
Puis définir le mot de passe “root” de Mysql (y) et entrer le mot de passe.
- On supprime le compte anonyme par défaut
Remove anonymous user (Y/n) : y
- On restreint les connexions root au localhost
Disallow root login remotely (Y/n) : y
- Suppression de la base “test” :
Remove Test database an access (Y/n) : y
- Prise en compte immédiate des changements (Y/n) : y
Et c'est tout bon.
On peut tester l'accès à mysql avec
mysql -u root -p
+ mot de passe
Et on arrive sur la console mysql>
Ex pour créer un utilisateur avec son mot de passe et tous les privilèges sur cette base :
GRANT ALL ON *.* TO 'nouvelutilisateur'@'localhost' IDENTIFIED BY 'motdepasse'; FLUSH PRIVILEGES;
pour la prise en compte immédiate des changements.
quit;
ou \q
pour quitter MySQL.
3. Installer Serveur Web (nginx) avec PHP
Install du serveur Web
apt install nginx
Le serveur doit déjà être fonctionnel sur http://ip_CT (“Welcome to nginx” , page présente dans /var/www/html/ )
Installation de PHP (ici PHP7.3 par défaut)
apt install php php-fpm
Le service doit être actif :
systemctl status php7.3-fpm
Service “enabled” et “active (running)”
On peut aussi rajouter des modules complémentaires utiles comme : php-gd, php-json, php-zip (à compléter…).
4. Définir des Virutalhost
A détailler
5. Cas de plusieurs versions de PHP
- Utiliser les dépot Sury de PHP à ajouter
https://packages.sury.org/php/
- Connecter les versions de PHP à différents sockets
- Personnaliser les virtualhosts à partir de ces sockets.
6. Cas des certificats Let's Encrypt pour SSL
Des certifcats autosignés suffiraient.