TD07 : HEBERGEMENT SITE SAE203
Hébergement
OBJECTIF
Votre site final devra être accessible par l'URL : https://MMI.sae203.ovh Les pages du site devront se trouver dans un dossier /var/www/sae203 de votre VPS
PREAMBULE
Dans tout le document, remplacez MMI par votre identifiant MMI personnel (mmi21Xxx).
Testez l'enregistrement DNS de votre site : MMI.sae203.ovh
avec la commande dig +short
MMI.sae203.ovh
Le résultat retourné doit être l'adresse IP de votre VPS.
Dans le cas contraire, signalez-le à l'enseignant pour qu'il vérifie.
MISE EN PLACE DU SITE
LE DOSSIER et les DROITS D'ACCES pour l'utilisateur MMI
Pour commencer , ouvrez un terminal et connectez-vous en SSH sur votre VPS avec votre compte utilisateur MMI et le mot de passe associé. Une fois connecté, n'oubliez pas de saisir la commande sudo -i pour obtenir les autorisations root sur votre machine.
Créez un dossier /var/www/sae203 (mkdir)
Donnez les droits en écriture à votre utilisateur MMI sur le dossier sae203 (chown)
Pour faire un premier test, dans le dossier sae203, créez une page index.php avec le contenu suivant : <?php phpinfo(); ?>
LE FICHIER DE CONFIGURATION APACHE
Placez vous dans le dossier /etc/apache2/sites-available (cd)
Créez un fichier 003-sae203.conf avec le contenu suivant Remplacez les ?????? par les valeurs attendues
<VirtualHost *:80>
ServerName
??????
ServerAdmin
prenom.nom
@etudiant.univ-reims.fr
DocumentRoot
??????
DirectoryIndex
??????
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Activez votre nouveau site (a2ensite)
Rechargez la configuration d'Apache (systemctl reload)
Testez votre configuration avec l'URL : http://MMI.sae203.ovh Vous devez voir afficher la configuration PHP de votre serveur :
Votre site étant maintenant correctement configuré, nous allons pouvoir passer à la suite
MISE A JOUR DE PHP
Pour continuer, nous allons maintenant mettre à jour PHP en version 8 afin de profiter au mieux de toutes les fonctionnalités du langage. Pour être plus précis, nous n'allons pas seulement mettre à jour notre version de PHP, mais voir comment faire cohabiter deux versions de PHP sous Apache.
AJOUT (ou mise à jour) DU DEPOT SURY
Comme nous l'avons déjà remarqué dans d'autres cours, notre distribution Debian ne dispose pas des versions les plus récentes de PHP dans ses dépôts. Nous allons donc commencer par ajouter un nouveau dépôt à notre installation pour pouvoir récupérer les paquets des dernières versions de PHP. Pour l'exercice, nous utiliserons les dépôts de Sury un des développeurs de la distribution Debian.
1- Vérifiez que les paquets prérequis pour l'installation sont présents sur notre machine. Utilisez la commande suivante pour commencer :
2- Récupérez la clé de vérification des paquets qui nous garantira que les données téléchargées ne sont pas altérées et sont bien celles publiées par Sury.
3- Ajoutez le dépôt Sury :
Si le fichier est vide, ajoutez les lignes suivantes. Si le fichier existe déjà, vérifiez simplement que le contenu est le suivant :
4- Mettez à jour la liste des paquets avec la commande : apt update ATTENTION Si des messages d'erreurs s'affichent , ne continuez pas l'exercice, corrigez les erreurs !!!
INSTALLATION DES VERSIONS DE PHP
Voyons maintenant comment il est possible d'avoir plusieurs versions de php actives sur notre serveur web. C'est le module CGI (Common Gateway Interface) qui va permettre à Apache de passer des instructions à un autre processus et d'en récupérer le résultat.
Pour que cela fonctionne, il faut juste que le processus externe puisse aussi être gérer à travers cette interface. Dans notre cas, nous utiliserons le module fast_cgi d'Apache (mod_fcgid) et les versions FPM (FastCGI Process Manager) de PHP.
1- Commencez par installer les paquets suivants :
libapache2-mod-fcgid php7.4-fpm php8.1-fpm REMARQUE : En plus du module fcgid, nous installons ici les version FPM de php afin de pouvoir les utiliser simultanément avec Apache, nous verrons un peu plus loin comment choisir la version active pour un site ou une application précise.
2- Activez les modules apache et les configurations de nos versions de php
a2enconf php7.4-fpm
a2enconf php8.1-fpm
a2enmod proxy_fcgi
a2enmod fcgid
3- Relancez apache : service apache2 restart
ATTENTION Si des messages d'erreurs s'affichent , ne continuez pas l'exercice, corrigez les erreurs !!!
4- Vérifiez la version active de PHP en rappelant la page index.php crée en début de cours : http://MMI.sae203.ovh
CHOISIR SA VERSION DE PHP
Voyons maintenant comment indiquer à Apache la version de PHP qu'il doit utiliser. Avec le module FastCGI, le choix peut se faire au niveau d'un site, mais aussi au niveau d'un dossier. Il suffit simplement d'ajouter les lignes suivantes dans le contexte désiré :
Par exemple, pour que votre site de travail reste en version 7 , ajoutez les lignes suivantes à votre fichier de configuration 001-MMI.conf , juste après la ligne <VirtualHost *:80> :
<FilesMatch .php$>
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
ATTENTION si vous avez activé HTTPS sur votre site MMI.mmi-troyes.fr , il faut aussi ajouter ces lignes dans le fichier 001-MMI-le-ssl.conf après la ligne <VirtualHost *:443>
Ensuite, relancez apache pour prendre en compte les modifications.
Pour tester, créez une page info.php avec la fonction phpinfo() dans votre dossier public_html Appelez cette page dans votre navigateur et vérifiez que vous utilisez bien la version 7 de PHP.
Pour terminer cette partie, modifiez le fichier de configuration de votre site sae203 pour qu'il ne prenne en compte que la version 8.1 de php
CONFIGURATION DE PHP
Vous avez pu voir avec phpinfo() un aperçu de la configuration de l'interpréteur php de votre serveur. Si vous observez le début de la page, vous pouvez voir que PHP utilise un fichier de configuration nommé php.ini . Ce fichier est unique pour chaque version de php .
Rassurez-vous nous n'allons pas passer tous les paramètres en revue, mais seulement nous intéresser à quelques-uns d'entre eux :
display_errors : Affichage des Erreurs PHP
upload_max_filesize : Taille Maximum des fichiers téléchargés
post_max_size : Taille Maximum des données envoyées via la méthode POST
Pour régler ces paramètres comme nous le désirons, il suffit d'éditer le fichier php.ini correspondant à notre version de PHP et de modifier les valeurs comme suit :
display_errors = On upload_max_filesize = 25M post_max_size = 25M
Pour vous simplifier le travail et éviter les erreurs, je mets à votre disposition un fichier php.ini correctement configuré. Utilisez les commandes suivantes pour le récupérer
Exemple pour php8.1 :
cd /etc/php/8.1/fpm
rm php.ini
wget http://demos4.mmi-troyes.fr/support/php.ini
Une fois le fichier modifié (ou recopié), redémarrez les services php associés .
Exemple pour php8.1 : service php8.1-fpm restart
Vérifiez ensuite avec votre page info.php que les modifications ont bien été prises en compte.
Pour terminer cette partie,
modifiez le fichier php.ini des deux versions de PHP installées (7.4 et 8.1) ,
renommez la page index.php de votre site sae203 en info.php
créez une nouvelle page index.php
avec le contenu de votre choix.
Cette page sera la page d'accueil de votre site http://MMI.sae203.ovh
Il ne vous restera plus qu'à installer le certificat Let's Encrypt pour passer votre site en HTTPS. Pour cela saisissez simplement la commande certbot --apache comme nous l'avons fait pour la sae105 lors du premier semestre.
REMARQUE : Rappelez-vous que le nombre de requête de certificat est limité à une cinquantaine par semaine, donc soyez patient. Si le nombre de requêtes est atteint aujourd'hui , réessayez la semaine prochaine.
Dernière mise à jour