-
Notifications
You must be signed in to change notification settings - Fork 15
Cloud 9
La configuration des espace de travail Cloud9 ne permet pas d'avoir un
serveur Apache qui tourne en même temps qu'un serveur Node sur le
port 80. Si le serveur Apache n'est pas arrêté, les applications Node
donneront l'erreur (EADDRINUSE
). Ceci rend pénible l'utilisation de
PHPMyAdmin en parallèle de Node (il faut arrêter l'un pour lancer
l'autre).
Notamment ceci pose un problème au démarrage du dernier TD. La commande
phpmyadmin-ctl install
installe PHPMyAdmin et lance un serveur Apache (ou lance uniquement Apache si PHPMyAdmin est déjà installé). Le serveur Apache ne peut pas être arrêté depuis l'interface graphique, et le tuer à travers le visionneur des processus ne marche pas. La seule solution (indiquée dans le TD) est de lancer la commande.
sudo service apache2 stop
Pour continuer le TD, il y a au moins deux solutions à ce problème :
-
Faire à la main : toujours penser à arrêter un serveur avant de lancer l'autre. Le serveur Apache peut être lancé, au choix :
- En ouvrant un fichier PHP, et en cliquant sur le bouton Run ;
- Avec la commande
phpmyadmin-ctl
; - Avec la commande
sudo service apache2 start
.
Pour l'arrêter : commande à la souris dans le premier cas,
sudo service apache2 stop
dans tous les cas. -
Faire à moitié à la main : le serveur Apache est lancé à la main par l'une des méthodes précédentes. Il est arrêté automatiquement au lancement de Node.js, si le runner choisi pour le projet est Node.js (nodemon) (configuration dans la console en bas de l'écran).
Deux autres solutions existent, mais elles ne marcheront que si le réseaux ne filtre pas le port 8081 (ce port est filtré sur le wifi de l'UVSQ et de l'ISTY, par exemple).
-
Faire tourner Node.js sur le port 8081 : il suffit de remplacer
app.listen(process.env.PORT)
parapp.listen(8081)
. -
Faire tourner Apache sur le port 8081 : suivre ces instructions.
Pour connaître l'état de fonctionnement des service de Cloud9 : https://status.c9.io/.