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 försäkra sig om att kompositör och nod inte är närvarande och att följande rader inte producerar någon utdata:

16c389ff1cdd9380cc5f9244775eb6c8

Först definierar vi temporära miljövariabler som vi kommer att behöva senare. För att göra detta anger vi användarens hemkatalog (vanligtvis ~/, på vissa delade värdar även /www/htdocs/xxxxxxx/) och önskad PHP-version (till exempel /usr/bin/php72 med leverantören All-Inkl , /usr/local/bin/php7-72LATEST-CLI med DomainFactory ).:

16c389ff1cdd9380cc5f9244775eb6c8

Nu ska vi se till att PHP körs i sin senaste version på konsolen. För att göra detta skapar vi en ny mapp i hemkatalogen, skapar en symbolisk länk och lägger till katalogen i början av miljövariabeln 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 är utformat för att göra det enkelt att växla mellan Node-versioner. Här utnyttjar vi dess funktion att installera Node.js utan att root-behörigheter krävs.:

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 utföra alla dessa steg utan problem med flera tyska leverantörer av delade webbhotell. Vissa webbhotell har problem med symboliska länkar, men detta kan också lösas med hjälp av aliasdefinitioner . Till exempel fungerar följande .bashrc-fil för DomainFactory.:

16c389ff1cdd9380cc5f9244775eb6c8

Det finns även problem, till exempel vid åtkomst av /proc/stat i virtuella / delade miljöer, varför till exempel nodfunktionen os.cpus() returnerar odefinierat istället för korrekt kärnnummer. Detta leder till felmeddelanden som "Kan inte läsa egenskapen 'längd' av odefinierad" när du installerar npm-paket. Jag kunde lösa problemet genom att använda en ny version av Node.js (t.ex. 11.15.0) som åtgärdade problemet.

Tillbaka