Skip to content
Luca De Feo edited this page Mar 3, 2017 · 3 revisions

Node.js et PHPMyAdmin en même temps sur Cloud9

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 :

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

  2. 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).

  1. Faire tourner Node.js sur le port 8081 : il suffit de remplacer app.listen(process.env.PORT) par app.listen(8081).

  2. Faire tourner Apache sur le port 8081 : suivre ces instructions.

Contrôler l'état de Cloud9

Pour connaître l'état de fonctionnement des service de Cloud9 : https://status.c9.io/.

Clone this wiki locally