Node.js / npm / komponist uden rod

I et ældre blogindlæg beskrev jeg, hvordan man hoster Node.js gratis ved hjælp af Heroku . Nu vil jeg vise dig en måde, hvordan du kan installere Node.js , npm og Composer på enhver anden delt vært uden rodrettigheder med et par kodelinjer. Med det kan du installere pakker, distribuere Vue.js-applikationer eller bare starte en Express.js-server. Vi arbejder altid i brugerkataloget og bruger nvm - Node Package Manager.


Det er vigtigt at sikre på forhånd, at komponist og node ikke er tilgængelig, og at de følgende linjer ikke genererer noget output:

16c389ff1cdd9380cc5f9244775eb6c8

Først indstiller vi midlertidige miljøvariabler, som vi har brug for senere. For at gøre dette bestemmer vi brugerens brugerkatalog (normalt ~ /, på nogle delte værter også / www / htdocs / xxxxxxx /) og den ønskede PHP-version (for eksempel med udbyderen All-Incl / usr / bin / php72, med DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Nu sørger vi for, at den nyeste version af PHP kører på konsollen. For at gøre dette opretter vi en ny mappe i hjemmekataloget, opretter et softlink og tilføjer biblioteket til begyndelsen af ​​PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Nu installerer vi global komponist ved at downloade, kontrollere og udføre installationsskriptet og derefter placere composer.phar i brugerkataloget og oprette et symlink igen:

16c389ff1cdd9380cc5f9244775eb6c8

Vi bruger nvm til at installere Node.js. Dette er et bash-script, der faktisk tjener til let at skifte mellem nodeversioner. Vi bruger egenskaben her, at Node.js er installeret uden rodrettigheder:

16c389ff1cdd9380cc5f9244775eb6c8

En lille korrektion i .bashrc var nødvendig for mig:

16c389ff1cdd9380cc5f9244775eb6c8

Nu kan vi installere og aktivere den nuværende stabile version af Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

Ved hjælp af nvm kan vi også let skifte version.

16c389ff1cdd9380cc5f9244775eb6c8

Jeg var i stand til at udføre alle disse trin med nogle tyske shared hosting-udbydere uden problemer. Nogle værter har problemer med symlinks, men aliase kan også hjælpe . For eksempel hjælper følgende .bashrc med DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Der er også problemer med at få adgang til / proc / stat i virtuelle / delte miljøer, og derfor returnerer f.eks. Nodefunktionen os.cpus () udefineret i stedet for det korrekte antal kerner . Når du installerer npm-pakker, fører dette til fejlmeddelelser som "Kan ikke læse ejendoms 'længde' af udefineret". Jeg var i stand til at løse problemet ved hjælp af en nyere version af Node.js (f.eks. 11.15.0), der adresserede problemet.

Tilbage