Comment faire tourner son serveur Symfony local avec proxy
Vendredi 03 Mars 2023 08:30

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é !

Terminal screenshot

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.

Terminal proxy

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:

  1. Ouvrez les paramètres ( WIN+I )
  2. Réseau et Internet
  3. Proxy (dans le menu de gauche)
  4. Activez les deux switch
  5. Entrez l'adresse http://127.0.0.1:7080/proxy.pac
  6. Enregistrer

Proxy windows 10

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 settings

Vous 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.