Skip to content

Déployer Mini-MVC-Sample sur Apache ​

Un petit TP/Guide rapide pour créer, installer et configurer un serveur Apache afin d'y déployer Mini MVC Sample. Déployer un site Mini MVC Sample est assez similaire à ce que vous connaissez déjà, cependant il y aura quelques exceptions.

TP prévu pour Debian

Le TP est axé sur Debian, mais il devrait fonctionner avec la plupart des distributions.

Sommaire

Apache ​

Première étape (si vous ne l'avez pas déjà) est d'installer Apache :

sh
apt-get install apache2 -y

PHP 8 ​

Vous devez avoir une version récente de PHP, de base Debian arrive avec une version relativement ancienne de PHP à savoir PHP 7.3 (et des bananes). Pour ça nous allons avoir besoin d'un dépôt externe, celui-ci contiendra la dernière version de PHP.

sh
# Installation des dépendances nécessaires à l'ajout d'un dépôt
apt-get install lsb-release wget apt-transport-https gnupg2 ca-certificates -y

# Ajout du dépôt Sury
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

# Ajout de PHP et des dépendances nécessaires au bon fonctionnement de Mini MVC Sample
apt-get update -y
apt-get install apache2 php8.4 php8.4-fpm php8.4-cli php8.4-{bz2,curl,mbstring,intl,pdo,mysql,gd,zip,xml} unzip zip -y

# Activer PHP dans Apache
a2enmod proxy_fcgi setenvif rewrite headers
a2enconf php8.4-fpm

# Active  Apache
systemctl restart apache2
systemctl enable apache2   

# Active la réécriture d'URL nécessaire pour Mini MVC Sample
/usr/sbin/a2enmod rewrite

PHP-FPM ?

PHP-FPM est la nouvelle façon de faire fonctionner PHP sur un serveur. Il a plusieurs avantages :

  • Performances accrues.
  • Moins de ressources utilisées.
  • Permet de faire tourner plusieurs versions de PHP en même temps.
  • Rechargement de la configuration sans redémarrage du serveur.

Et voilà, nous avons la base, votre serveur est prêt à recevoir votre code ! Avant de continuer, vérifiez avec la commande suivante que votre version de PHP est au moins égale à 8.

sh
php -v

Exemple dans mon cas :

sh
PHP 8.4.27 (cli) (built: Sep 29 2022 22:17:15) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.27, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.27, Copyright (c), by Zend Technologies

Un instant !

  • D'où viennent ces commandes ?
  • Devez-vous ? Pouvez-vous me faire confiance et les copier-coller directement ?

Installer votre site ​

Pour installer votre site, nous avons deux solutions :

  • Utiliser un FTP (ou un sftp) et déposer votre code source dans /var/www/html/votresite/.
  • Cloner le code source avec Git dans le dossier /var/www/html/votresite/

Cloner ou FTP ? Vous avez le choix !?

Un instant !

  • Avez-vous déjà cherché la différence entre FTP ou SFTP ?
  • Je pense qu'il serait plus intéressant de passer par GIT, pourquoi selon vous ?

Configurer Apache ​

La dernière étape est la configuration du serveur Apache, habituellement déposer les sources suffit à faire fonctionner un site Internet, avec Mini MVC Sample nous allons avoir une étape supplémentaire :

Pour ça :

sh
nano /etc/apache2/sites-available/000-default.conf

Dans le fichier en question vous devez :

1 - Changer / Modifier le DocumentRoot par : ​

txt
DocumentRoot /var/www/html/votresite

2 - Ajouter dans la configuration du VirtualHost : ​

txt
# Autorise l'exécution des fichiers .htaccess dans votre site.
<Directory /var/www/html/votresite>
    AllowOverride All
</Directory>

Cette partie est importante, elle permet d'activer la réécriture d'URL nécessaire pour Mini MVC Sample, il faut l'ajouter dans la configuration du VirtualHost (entre les balises <VirtualHost> et </VirtualHost>).

Un exemple du résultat

Dans mon cas voilà le résultat :

txt
<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot /var/www/html/votresite

    <Directory /var/www/html/votresite>
        AllowOverride all
    </Directory>

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

Un Instant !

Comprendre la configuration c'est important, c'est une partie importante de votre métier (et ça fait partie de la sécurité).

3 - Redémarrer votre serveur Apache ​

sh
systemctl restart apache2

4 - Profit ! ​

Voilà ! Votre site est maintenant fonctionnel sur votre serveur.

Félicitations !

×

Reformulation

La reformulation (IA exécutée localement dans votre navigateur) peut faire des erreurs. Envisagez de vérifier les informations.