Node.js / npm / Composer utan root

I ett äldre blogginlägg beskrev jag hur jag är värd för Node.js gratis med Heroku . Nu ska jag visa dig hur du kan installera Node.js , npm och Composer på någon annan delad värd utan root-rättigheter med några rader kod. Med den kan du installera paket, distribuera Vue.js-applikationer eller bara starta en Express.js-server. Vi arbetar alltid i användarkatalogen och använder nvm - Node Package Manager.


Det är viktigt att i förväg säkerställa att kompositör och nod inte är tillgängliga och att följande rader inte genererar någon utdata:

16c389ff1cdd9380cc5f9244775eb6c8

Först ställer vi in ​​tillfälliga miljövariabler som vi behöver senare. För att göra detta bestämmer vi användarens användarkatalog (vanligtvis ~ /, på vissa delade värdar också / www / htdocs / xxxxxxx /) och önskad PHP-version (till exempel med leverantören All-Inkl / usr / bin / php72, med DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Nu ser vi till att den senaste versionen av PHP körs på konsolen. För att göra detta skapar vi en ny mapp i hemkatalogen, skapar en mjuk länk och lägger till katalogen i början av PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Nu installerar vi global kompositör genom att ladda ner, kontrollera och köra installationsskriptet och sedan placera composer.phar i användarkatalogen och skapa en symlink igen:

16c389ff1cdd9380cc5f9244775eb6c8

Vi använder nvm för att installera Node.js. Detta är ett bash-skript som faktiskt används för att enkelt växla mellan nodversioner. Vi använder egenskapen här som Node.js installeras utan root-rättigheter:

16c389ff1cdd9380cc5f9244775eb6c8

En liten korrigering i .bashrc var nödvändig för mig:

16c389ff1cdd9380cc5f9244775eb6c8

Nu kan vi installera och aktivera den nuvarande stabila versionen av Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

Med hjälp av nvm kan vi också enkelt byta version.

16c389ff1cdd9380cc5f9244775eb6c8

Jag kunde genomföra alla dessa steg med några tyska leverantörer av delade värdar utan problem. Vissa värdar har problem med symlänkar, men aliase kan också hjälpa till . Följande .bashrc hjälper till exempel med DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Det finns också problem vid åtkomst till / proc / stat i virtuella / delade miljöer, varför till exempel nodfunktionen os.cpus () returnerar odefinierad istället för rätt antal kärnor . När du installerar npm-paket leder detta till felmeddelanden som "Kan inte läsa egenskapens" längd "av odefinierad". Jag kunde lösa problemet med en aktuell version av Node.js (t.ex. 11.15.0) som tog itu med problemet.

Tillbaka