Apache et Symfony
Comment configurer Apache pour un projet Symfony ?
Si vous recherchez un hébergement gratuit pour un projet Symfony, vous pouvez consulter le tutoriel Hébergement du portfolio.
Notions théoriques
Symfony est un framework PHP puissant et populaire qui permet de créer des applications Web robustes et maintenables. Il suit une architecture basée sur le design pattern MVC (Model-View-Controller) et repose sur des principes tels que la modularité et la réutilisation des composants.
Pour qu’un projet Symfony fonctionne correctement, l’environnement serveur doit être configuré avec les bonnes versions de PHP, Apache et les extensions nécessaires.
Prérequis techniques pour Symfony :
- PHP version 8.1 ou supérieure
- Extensions PHP :
curl
,json
,ctype
,tokenizer
,session
,simplexml
,intl
,pdo
,mbstring
- Apache installé avec le module
mod_rewrite
activé. - Composer installé pour la gestion des dépendances.
Symfony génère des fichiers qui doivent être accessibles via un serveur Web (Apache ou Nginx). Le répertoire public de Symfony se trouve dans le dossier public/
, qui sert de DocumentRoot pour le serveur Web.
Détails des étapes de configuration d’un projet Symfony sous Apache
Élément | Description |
---|---|
DocumentRoot | Répertoire racine du projet Symfony qui doit pointer vers /chemin_du_projet/public/ . |
mod_rewrite | Nécessaire pour la gestion des URLs (routes Symfony). |
Fichier .env | Fichier de configuration pour les variables d'environnement (base de données, environnement). |
Cache & Logs | Répertoires où Symfony génère les caches et fichiers de logs (var/cache et var/log ). |
Exemple pratique
-
Créer un projet Symfony nommé
mon_projet
avec les composantswebapp
astucePour de l'aide vous pouvez consulter l'Introduction à Symfony.
-
Configurer Apache pour le projet Symfony :
Créez un répertoire pour héberger le projet (par exemple
/var/www/mon_projet
), puis copiez le projet Symfony dans ce répertoire :sudo mv mon_projet /var/www/
sudo chown -R www-data:www-data /var/www/mon_projetCréez un fichier de configuration Apache pour le projet :
sudo nano /etc/apache2/sites-available/mon_projet.conf
Dans ce fichier, écrivez la configuration suivante :
<VirtualHost *:80>
ServerName monprojet.fr
DocumentRoot /var/www/mon_projet/public
<Directory /var/www/mon_projet/public>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mon_projet_error.log
CustomLog ${APACHE_LOG_DIR}/mon_projet_access.log combined
</VirtualHost> -
Activer le VirtualHost et configurer Apache :
- Activez le site :
sudo a2ensite mon_projet
- Assurez-vous que le module
mod_rewrite
est activé :
sudo a2enmod rewrite
- Redémarrez Apache :
sudo systemctl restart apache2
-
Configurer les permissions et les fichiers de cache/logs :
Symfony nécessite que certains répertoires soient accessibles en écriture par le serveur Web.
Assurez-vous que
var/cache
etvar/log
ont les bonnes permissions :sudo chown -R www-data:www-data /var/www/mon_projet/var
sudo chmod -R 775 /var/www/mon_projet/var -
Configurer le fichier
hosts
sur la machine cliente :Modifiez le fichier
hosts
de votre machine pour associer l’adresse IP du serveur à votre nom de domaine :ip_serveur monprojet.fr
infoSi vous n'avez pas accès à un serveur DNS (Domain Name System), vous devez modifier le fichier
hosts
de votre machine pour établir une association manuelle entre l'adresse IP du serveur et le nom de domaine souhaité.Le fichier
hosts
agit comme une petite base de données locale, permettant à votre système d'exploitation de résoudre un nom de domaine (par exemple,monprojet.fr
) en une adresse IP (par exemple,192.168.1.10
) sans passer par un serveur DNS.Cette méthode est utile pour les environnements de développement ou de test où il n'est pas nécessaire de configurer un DNS public ou interne.
En pratique, cela vous permet de configurer un virtualhost et d'accéder à vos sites hébergés en saisissant des noms de domaine personnalisés dans votre navigateur, plutôt que de devoir utiliser des adresses IP directement.
-
Tester l’installation :
Ouvrez un navigateur Web et accédez à l’adresse
http://monprojet.fr
. Vous devriez voir la page d’accueil par défaut de Symfony.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Dans ce TP, vous allez héberger un projet Symfony avec les spécifications suivantes :
-
Nom de domaine :
blog.fr
pour un blog personneladmin.blog.fr
pour la section d'administration
-
Prérequis :
- Installer le projet Symfony.
- Configurer deux VirtualHosts distincts pour les noms de domaines ci-dessus.
-
Étapes :
-
Créer un projet Symfony
blog --webapp
.astucePour de l'aide vous pouvez consulter l'Introduction à Symfony.
-
Configurer Apache pour avoir un VirtualHost qui pointe vers
/var/www/blog/public
pourblog.fr
et un autre VirtualHost qui pointe vers/var/www/blog/public/admin
pouradmin.blog.fr
. -
Modifier le fichier
hosts
pour ajouter les noms de domaine sur la machine cliente. -
Tester les URLs
http://blog.fr
ethttp://admin.blog.fr
pour vérifier le bon fonctionnement.
-
-
Développer les sections du site :
- Ajoutez un fichier
index.html.twig
pour la page d’accueil du blog. - Ajoutez une route et une vue pour la section
admin
.
- Ajoutez un fichier
Une solution
Vous devez être connecté pour voir le contenu.