IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

NODE.JS et PHP ?


Sujet :

NodeJS

  1. #1
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2019
    Messages : 17
    Par défaut NODE.JS et PHP ?
    Bonjour. Comme j'ai du mal à trouver des explications claires sur le sujet (pour un novice en tout cas) je poste ici ce message, si jamais qqln avait quelques minutes pour m'expliquer plusieurs choses que j'ai un peu de mal à comprendre.
    Si jamais ce n'est pas la bonne rubrique pour poster ce message, indiquez moi le meilleur emplacement.
    J'ai des bonnes connaissances en html, css, js mais j'aimerais aller plus loin que des "simples sites" wordpress avec underscore. J'ai plusieurs sites. Un hébergement avec php 7.2 (via O2switch et CPANEL)
    Mais j'aimerais automatiser la minification du css et du js etc... J'ai vu qu'il existait via github tout un tas de starter théme Wordpress avec grunt, gulp ou webpack d'installer.

    Mais l'installation n'est pas facile à comprendre (pour moi en tout cas). Pour terminal et la connection SSH pas de pblm... mais quand j'essaye d'installer GULP par exemple,
    il faut que je fasse une install via NPM. Hors NPM tourne avec NODE.JS à ce que j'ai compris.
    - Faut-il que j'installe NODE.JS sur mon serveur mutualisé ? A quel niveau ?
    - Je croyais que PHP et NODE.JS étaient 2 options différentes ?
    J'ai un peu du mal à comprendre le schéma, je l'avoue et çà m'intéresse.

    Voilà, je ne sais pas si je suis clair ? Si qqln a 5mn à me consacrer pour m'éclairer et m'expliquer simplement le principe de fonctionnement.
    Si vous avez des sources d'articles ou de livres, je suis aussi preneur. tanx.

  2. #2
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Hors NPM tourne avec NODE.JS à ce que j'ai compris.
    En fait npm signifie Node Package Manager. C'est donc l'outil gérant les dépendances de Node.js, il est composé d'un CLI qui est installé par défaut quand tu installes Node.js et il consulte un registre pour télécharger les packages. Gulp est un package parmi d'autres. Aujourd'hui on se sert de npm aussi bien pour gérer les projets backend que les projets frontend, bref sur tous les projets JavaScript (ainsi que ses extensions comme TypeScript), c'est indispensable.

    La plupart des langages a adopté ce système de registre, Java avec Maven central, .NET avec Nuget, PHP avec Packagist, Perl avec CPAN, etc ...

    Faut-il que j'installe NODE.JS sur mon serveur mutualisé ?
    A partir du moment ou tu souhaites exécuter du JavaScript sur ta machine oui. Node.js sert à exécuter du JavaScript comme un programme normal. Gulp par exemple n'est pas un outil qui s'exécute dans le navigateur. C'est un outil CLI qui sert à customiser le build des applis frontend.

    A quel niveau ?
    Système.

    Je ne suis pas sur de comprendre la question. Il te faut installer node comme tu installerais Python ou la JVM Java.

    Je croyais que PHP et NODE.JS étaient 2 options différentes ?
    Pour le développement d'un projet web en effet. Mais node est un peu plus que ça. C'est plus proche de la JVM Java que de PHP.

    Je t'invite à prendre le temps de regarder les cours sur le site il y a beaucoup de choses.

  3. #3
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2019
    Messages : 17
    Par défaut
    Merci Marco... mais je ne suis pas plus éclairé :-) (pardon de la franchise).
    J'ai bien capté à quoi servait NODE.JS et NPM sur le papier. Je les ai installé sur mon ordi, via terminal.
    Je les ai fait tourné en créant un serveur virtuel avec XAMPP. J'ai fait des install avec NMP... package.json etc...
    Ça marche. Mais NODE.JS est installé sur mon système... donc pas de pblm.

    Là où je coince c'est quand j'essaye de faire la même chose sur mon hébergeur/serveur. Je ne capte pas bien où installer NODE.JS ?
    Je rentre sur mon espace en ssh, mais après ? Je doit créer un fichier /BIN à la racine, et installer NODE.JS dedans ? je ne trouve pas trop de doc sur le sujet et le seul truc chez O2switch c'est çà:
    node.js sur O2switch
    Quand NODE.JS fait tourner le serveur, no problem mais quand c'est PHP alors, c'est quoi le principe ? Où placer NODE.JS.

  4. #4
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    C'est à ton hébergeur qu'il faut poser cette question.

    La question c'est "peut-on avoir node et php sur le même hébergement".

    Leur méthode d'installation me laisse perplexe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    wget https://nodejs.org/download/release/latest/node-v10.5.0-linux-x64.tar.gz
    tar -xvf node-*.tar.gz
    mkdir ~bin
    mv node-v10.5.0-linux-x64 ~/bin/nodejs
    ~/bin/nodejs/bin/node --version
    En gros s'est fait à la main.

    Et ça prend tout son sens quand on lit le début de la page de la doc :

    Actuellement, nodeJS n'est pas proposé officiellement sur nos espaces d'hébergements
    Du coup à ta question :

    Quand NODE.JS fait tourner le serveur, no problem mais quand c'est PHP alors, c'est quoi le principe ? Où placer NODE.JS.
    Comme ils te le disent dans la doc

  5. #5
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2019
    Messages : 17
    Par défaut
    D'accord. Merci de t'être penché sur le truc. En gros ce n'est pas claire :-) Même pour des connaisseurs.

    Je vais donc de ce que je comprend créer un fichier/ CG_BIN à la racine du site ou des sites/. Y installer CGI_NODE qui fera tourner NODE.JS.
    Mais si il faut faire çà pour chaque sites/ c'est un peu l'usine à gaz.
    Je pensais justement qu'il suffissait de l'installer pour ton les sites à la racine. (ou alors j'ai mal compris...)

    Est-ce que c'est particulier à O2switch ? ou y'a d'autres hébergeurs qui propose NODE.js de base (comme GANDI mais il faut choisir entre NODE et PHP).
    Du coup, je suis un peu paumé dans tout çà. C'est pas grave. Je vais continuer d'avancer...

  6. #6
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Si c'est très clair, ton hébergeur ne supporte pas Node.js. Si tu veux l'installer il faut le faire à la main.

    Je pensais justement qu'il suffissait de l'installer pour ton les sites à la racine. (ou alors j'ai mal compris...)
    Si tu as une machine avec un apache contenant tous les sites alors tu installes Node.js une seule fois il sera dispo partout. Il sera dans le PATH donc tu pourras faire node gulp depuis partout.

    Si tu as une machine et un apache par site alors il te faudra l'installer à chaque fois.

    Est-ce que c'est particulier à O2switch ? ou y'a d'autres hébergeurs qui propose NODE.js de base (comme GANDI mais il faut choisir entre NODE et PHP).
    Du coup, je suis un peu paumé dans tout çà.
    C'est parce que ça dépend de la nature de l'hébergement. L'hébergement GANDI c'est plus proche d'une PaaS comme Heroku. On te met à dispo une plateforme pour une stack précise.

    Là toi manifestement tu as accès au système dans son ensemble donc tu pourrais tout aussi bien installer tout ce que tu veux. C'est plus proche d'un hébergement OVH où tu vas obtenir une machine sur laquelle tu fais ce que tu veux.

  7. #7
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2019
    Messages : 17
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    Si tu as une machine avec un apache contenant tous les sites alors tu installes Node.js une seule fois il sera dispo partout. Il sera dans le PATH donc tu pourras faire node gulp depuis partout.
    C'est le cas.
    Mais la doc de l'install CGI-NODE indique qu'il faut installer dans le dossier cgi-bin/ du site. Et j'en ai plusieurs...
    Donc, je vais pas faire le foufou , je vais suivre leur doc... Je suis en train de tester. Je vous dirais ce qu'il en est, si y'en a qui sont dans mon cas;
    Ce qui est surtout frustrant c'est de lire les possibilités et la facilité d'install avec NPM et quand tu t'y mets en fait c'est pas si simple.
    Je demande pas quelquechose d'immédiat sans effort, mais là je trouve qu'il y a un manque de doc, pour les gens comme moi qui veulent basculer
    vers des choses plus solides sans non plus prétendre à comprendre toute l'archi d'un serveur.

  8. #8
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Mais la doc de l'install CGI-NODE indique qu'il faut installer dans le dossier cgi-bin/ du site.
    J'avais pas fait gaffe, c'est super zarbi.

    Ce qui est surtout frustrant c'est de lire les possibilités et la facilité d'install avec NPM et quand tu t'y mets en fait c'est pas si simple.
    Pour le coup c'est surtout de la faute de ton hébergeur

  9. #9
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2019
    Messages : 17
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    J'avais pas fait gaffe, c'est super zarbi.
    Autant pour moi... le fichier NODE.JS à télécharger direct sur le site NODE se place dans le fichier BIN. Il est commun du coup...
    C'est le fichier CGI-NODE qui va dans le répertoire CGI-BIN si j'ai bien capté...
    Mais pour le moment, ça ne fonctionne pas :-) Je cherche, surement les path qui ne vont pas.

  10. #10
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Oui il te faut ajouter manuellement ~/bin/nodejs/bin/node puisque l'installation consiste à seulement décompresser l'archive. Ou sinon tu appelles node avec tout le chemin à chaque fois, mais bon c'est pour pas avoir à faire ça qu'on a le PATH

  11. #11
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2019
    Messages : 17
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    Oui il te faut ajouter manuellement ~/bin/nodejs/bin/node puisque l'installation consiste à seulement décompresser l'archive. Ou sinon tu appelles node avec tout le chemin à chaque fois, mais bon c'est pour pas avoir à faire ça qu'on a le PATH
    Merci Marco. Ça marche bien, je confirme. Les techniciens d'O2switch m'ont donné la même réponse :-)
    J'ai crée un raccourci : node = "~/bin/nodejs/bin/node" et si je vérifie node --version çà fonctionne
    Le pblm que j'ai c'est avec NPM le chemin n'est pas le même : ~/bin/nodejs/lib/node_modules/npm/bin/npm-cli.js
    et quand j'essaye de le tester : ~/bin/nodejs/lib/node_modules/npm/bin/npm-cli.js --version il me dit : No such file or directory

    Quand je teste le chemin avec un simple cd ~/bin/nodejs/ idem... Il doit y avoir un blocage mais lequel ? Peut-être les droits 0775 en 0755 ?
    Pourtant je suis sûr du chemin... Les dossiers ont des droits 0775, j'ai un peu du mal à capter... j'avoue.

    C'est quand tu penses que tout vas marche impec que les copains du 1er problème qui attendaient sagement se pointent :-)

    EDIT : je penche pour un appel de NPM via un lien... Dans le dossier ~/bin/nodejs/bin/ il y a un dossier "lien" nommé NPM et NPX. Peut-être que ?

  12. #12
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Oui la commande a appeler c'est npm (ou npx pour éxécuter un package, cf doc) et pas le script interne.

    Ajoute simplement ~/bin/nodejs/lib/node_modules/npm/bin/ au PATH et ça va fonctionner.

  13. #13
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2019
    Messages : 17
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    Ajoute simplement au PATH
    Ok merci. Je vais surtout aller consulter la doc : "Ajouter un chemin dans le PATH".
    J'avais pas capté la notion en pensant que c'était simplement la façon de nommer le chemin comme dans les barres d'url.
    Mais apparemment c'est plus que çà. Si je capte bien, c'est une liste de chemin autorisé que le shell va consulter. Des sortes de clefs.

    EDIT : ça marche je confirme. (Si ça peut aider certains... je met les commandes)
    Pour ajouter au PATH, j'ai rentré ces 2 commandes (apparemment, il y a plusieurs façons de faire. Permanente ou temporaire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    export PATH=~/bin/nodejs/bin/:$PATH
    export PATH=~bin/nodejs/lib/node_modules/npm/bin/:$PATH
    Quand je teste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    node --version
    nmp --version
    J'obtiens les versions, donc ça fonctionne. Mais la dernière fois que j'ai dit çà, derrière y'avait une autre surprise :-)
    Avec le code ci-dessous, la modif est permanente. J'ai testé...
    EDIT 2: Je l'avais dit... tu penses avoir résolu un pblm et un autre arrive. Mais ce n'est pas très important. Pour mémoriser les chnagements du path:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo 'export PATH="$PATH":~/bin/nodejs/lib/node_modules/npm/bin/' >> ~/.bashrc
    echo 'export PATH="$PATH":~/bin/nodejs/bin/' >> ~/.bashrc

  14. #14
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2019
    Messages : 17
    Par défaut Curieux...
    Chose curieuse...NPM ne marchait pas avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'export PATH="$PATH":~/bin/nodejs/bin/' >> ~/.bashrc
    Pourtant dans le fichier il y a un dossier en redirection vers NPM et NPX

    Après avoir renseigner le bon chemin vers NPM et NPX, celà a fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'export PATH="$PATH":~/bin/nodejs/lib/node_modules/npm/bin/' >> ~/.bashrc
    SUPER ! Sauf que tout à coup... il va cherché le NPM dans le rep: /bin/nodejs/lib/bin/node_modules/npm/bin/node_modules/npm/bin/ (ou un chemin du genre, je ne l'ai plus en mémoire)
    Donc, NPM ne marche plus et j'ai un code erreur.

    En effaçant, le chemin : /bin/nodejs/lib/node_modules/npm/bin/ du PATH, çà fonctionne
    C'est assez étrange. Et je n'ai pas installé grand chose: GULP-CLI. Rien de plus...

  15. #15
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 909
    Par défaut
    Salut,

    Ah c'est un fil intéressant...

    Moi aussi je me demande comment en pratique on peut faire un site avec node.js, je veux dire comment on doit faire avec l'hébergeur...

    C'est dommage qu'il n'y ait pas de tuto là-dessus, genre un tuto qui expliquerait comment faire étape par étape avec un hébergeur qui existe vraiment (un gratuit de préférence pour pouvoir suivre le tuto).

  16. #16
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2019
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2019
    Messages : 91
    Par défaut Nvm.
    Je pense que pour eviter les problèmes de path avec node et npm le mieux est de le gérer avec nvm.
    L'outil gardera une coherence des path et des versions npm compatible avec la version de node.

    https://github.com/creationix/nvm

  17. #17
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Je préfère https://github.com/tj/n pour sa simplicité. Il reste juste à correctement configurer ses package.json avec la propriété engines pour s'assurer d'avoir les bonnes versions à l'exécution et les bonnes erreurs si non.

  18. #18
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2019
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2019
    Messages : 91
    Par défaut
    Je ne connaissais pas. Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Node.js ou Php
    Par coolibaly225 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/06/2017, 23h58
  2. Communication node.js <=> PHP
    Par Rifton007 dans le forum NodeJS
    Réponses: 5
    Dernier message: 12/02/2016, 13h39
  3. [Web Service] Websocket Php ou node.js
    Par goldor dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 07/10/2015, 20h08
  4. [Drupal] template node.tpl.php sur-mesure ne marche pas [tuto Cyprien Roudet chapitre 5 partie IV 4.1]
    Par benji71 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 26/11/2014, 14h39
  5. [Web Service] connection à un node distant via php
    Par oracle12 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/06/2012, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo