Node.js / npm / Compozitor fără rădăcină

Într-o postare de blog mai veche am descris cum să găzduiești Node.js gratuit folosind Heroku . Acum vă voi arăta o modalitate de a instala Node.js , npm și Composer pe orice altă gazdă partajată fără drepturi de root cu câteva linii de cod. Cu acesta puteți instala pachete, implementa aplicații Vue.js sau pur și simplu porni un server Express.js. Lucrăm întotdeauna în directorul utilizatorului și folosim nvm - Node Package Manager.


Este important să vă asigurați în prealabil că compozitorul și nodul nu sunt disponibile și că următoarele linii nu generează nicio ieșire:

16c389ff1cdd9380cc5f9244775eb6c8

Mai întâi stabilim variabile de mediu temporare de care vom avea nevoie mai târziu. Pentru a face acest lucru, determinăm directorul utilizatorului utilizatorului (de obicei ~ /, pe unele gazde partajate, de asemenea / www / htdocs / xxxxxxx /) și versiunea PHP dorită (de exemplu, cu furnizorul All-Inkl / usr / bin / php72, cu DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Acum ne asigurăm că cea mai recentă versiune de PHP rulează pe consolă. Pentru a face acest lucru, creăm un folder nou în directorul de start, creăm un link soft și adăugăm directorul la începutul PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Acum instalăm Global Composer descărcând, verificând și executând scriptul de instalare, apoi plasând și composer.phar în directorul utilizatorului și creând din nou un link simbolic:

16c389ff1cdd9380cc5f9244775eb6c8

Folosim nvm pentru a instala Node.js. Acesta este un script bash care servește de fapt pentru a comuta cu ușurință între versiunile nodurilor. Folosim aici proprietatea că Node.js este instalat fără drepturi de root:

16c389ff1cdd9380cc5f9244775eb6c8

Pentru mine a fost necesară o mică corecție în .bashrc:

16c389ff1cdd9380cc5f9244775eb6c8

Acum putem instala și activa versiunea stabilă curentă a Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

Cu ajutorul nvm putem schimba cu ușurință versiunea.

16c389ff1cdd9380cc5f9244775eb6c8

Am putut efectua toți acești pași cu unii furnizori germani de găzduire partajată fără probleme. Unele gazde au probleme cu legăturile simbolice, dar și altele pot ajuta . De exemplu, următorul .bashrc ajută la DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Există, de asemenea, probleme la accesarea / proc / stat în medii virtuale / partajate, motiv pentru care funcția nod os.cpus (), de exemplu, returnează nedefinit în loc de numărul corect de nuclee . La instalarea pachetelor npm acest lucru duce la mesaje de eroare precum „Nu se poate citi proprietatea„ lungimea ”nedefinită”. Am reușit să rezolv problema utilizând o versiune recentă a Node.js (de exemplu, 11.15.0) care a abordat problema.

Înapoi