Comment faire tourner son serveur Symfony local avec proxy
Depuis quelque temps, toute la gestion de symfony se gère par le CLI (Command-line interface) et quand je dis toute, celà va même jusqu’au serveur local.
Alors oui certains ont certainement gardé leurs vieilles habitudes d’utiliser un xampp pour avoir tout leur outils en local dont apache qui tourne et permettre de faire tourner leurs sites.
Mais il y a moyen de faire encore plus simple en se basant sur les outils de Symfony.
Pré-requis
Première chose, avoir PHP et le Symfony CLI d’installés.
Vous trouverez la procédure dans ma CheatSheet.
On va également partir du principe que votre projet est déjà prêt.
Le serveur Symfony
Alors ouvrez votre terminal et accrochez-vous, ça va aller vite !
cd ./monprojetsf
symfony server:start
Voilà votre serveur est lancé !
Comme vous pouvez le voir, votre projet est accessible à l’adresse http://localhost:8000
Vous pouvez tout à fait lancer plusieurs projets en parallèle. Le CLI remarquera que le port est pris et incrémentera à 8001, 8002, 8003,...
Commande alternative
Lancer le serveur en arrière plan
symfony server:start -d
Stopper serveur
symfony server:stop
Accéder au serveur dans le navigateur
symfony open:local
Consulter les logs dans le cas d’une utilisation en arrière plan
symfony server:log
Un https en local en supplément
Encore une fois ca va être compliqué
symfony server:ca:install
Et le proxy ?
C’est certain que localhost:8000 c’est pas très sexy et qu’en plus il est possible que le port change entre deux utilisations ou si vous gérez plusieurs projets en parallèle. Pour peu que vos projets doivent communiquer entre eux, il vous faut une adresse fixe. Nous allons donc utiliser le serveur proxy géré par le CLI de Symfony.
On vérifie que l’on est bien dans le dossier de notre projet et on exécute cette commande
symfony proxy:domain:attach nomdedomainelocal
Celà aura pour effet de configurer l’adresse locale nomdedomainelocal.wip pour le dossier courant.
Pas le choix pour l’extension. Certains utilisaient .lan à une époque, Symfony à choisi .wip pour WorkInProgress. Libre à vous de définir plusieurs domaines pour un même projet et même des sous domaine (voir une wildcard *.nomdedomainelocal).
Les plus pressés d’entre vous auront déjà tenté d’y accéder sans succès car il faut démarrer le proxy avant.
symfony proxy:start
Si vous lancez la commande avec le parametre -f vous l'afficherez en avant-plan et donc en permanence dans votre terminal.
On y est presque mais bien que le proxy soit cette fois démarré, il faut préciser à votre machine d’en tenir compte.
Sous windows 10:
- Ouvrez les paramètres ( WIN+I )
- Réseau et Internet
- Proxy (dans le menu de gauche)
- Activez les deux switch
- Entrez l'adresse http://127.0.0.1:7080/proxy.pac
- Enregistrer
Source: dummies.com: how-to-set-up-a-proxy-in-windows-10
Vous pouvez maintenant accéder au proxy qui listera toutes les adresses locales que vous lui avez renseigné.
Petite précision, une seule instance du proxy suffit peu importe le nombre de serveurs que vous lancez.
Il se pourrait que vous ayez un souci sous chrome.
Dans ce cas, rendez vous sur cette page: chrome://net-internals/#proxy
et cliquer sur Re-apply settingsVous devrez malheureusement le faire à chaque redémarrage.
Petit conseil, mettez cette page en favoris.
Supprimer un domaine
Si pour une raison ou une autre, vous devez supprimer un domaine, voici la commande
symfony proxy:domain:detach nomdedomainelocal
Et plus si affinité
Pour ceux qui voudrait en savoir plus, comme toujours n’hésitez pas à jeter un oeil à la documentation officielle de symfony.