Node.js / npm / Composer zonder root

In een oudere blogpost heb ik beschreven hoe je Node.js gratis kunt hosten met Heroku . Nu zal ik je een manier laten zien hoe je Node.js , npm en Composer op elke andere gedeelde host kunt installeren zonder rootrechten met een paar regels code. Hiermee kunt u pakketten installeren, Vue.js-applicaties implementeren of gewoon een Express.js-server starten. We werken altijd in de gebruikersdirectory en gebruiken nvm - de Node Package Manager.


Het is belangrijk om er van tevoren voor te zorgen dat composer en node niet beschikbaar zijn en dat de volgende regels geen output genereren:

16c389ff1cdd9380cc5f9244775eb6c8

Eerst stellen we tijdelijke omgevingsvariabelen in die we later nodig zullen hebben. Om dit te doen, bepalen we de gebruikersdirectory van de gebruiker (meestal ~ /, op sommige gedeelde hosts ook / www / htdocs / xxxxxxx /) en de gewenste PHP-versie (bijvoorbeeld met de provider All-Inkl / usr / bin / php72, met DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Nu zorgen we ervoor dat de nieuwste versie van PHP op de console draait. Om dit te doen, maken we een nieuwe map in de homedirectory, maken we een zachte link en voegen we de directory toe aan het begin van de PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Nu installeren we global composer door het installatiescript te downloaden, te controleren en uit te voeren, en vervolgens composer.phar in de gebruikersdirectory te plaatsen en opnieuw een symlink te maken:

16c389ff1cdd9380cc5f9244775eb6c8

We gebruiken nvm om Node.js. te installeren. Dit is een bash-script dat eigenlijk dient om eenvoudig tussen knooppuntversies te schakelen. We gebruiken hier de eigenschap dat Node.js wordt geïnstalleerd zonder rootrechten:

16c389ff1cdd9380cc5f9244775eb6c8

Een kleine correctie in de .bashrc was voor mij nodig:

16c389ff1cdd9380cc5f9244775eb6c8

Nu kunnen we de huidige stabiele versie van Node.js installeren en activeren:

16c389ff1cdd9380cc5f9244775eb6c8

Met behulp van nvm kunnen we ook gemakkelijk van versie wisselen.

16c389ff1cdd9380cc5f9244775eb6c8

Ik heb al deze stappen zonder problemen kunnen uitvoeren bij enkele Duitse shared hosting providers. Sommige hosters hebben problemen met symlinks, maar aliase kan ook helpen . Het volgende .bashrc helpt bijvoorbeeld bij DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Er zijn ook problemen bij het openen van / proc / stat in virtuele / gedeelde omgevingen, daarom geeft de knooppuntfunctie os.cpus () bijvoorbeeld ongedefinieerd terug in plaats van het juiste aantal kernen . Bij het installeren van npm-pakketten leidt dit tot foutmeldingen zoals "Kan eigenschap 'lengte' van ongedefinieerd niet lezen". Ik kon het probleem oplossen door een actuele versie van Node.js te gebruiken (bijv.11.15.0) die het probleem verhelpt .

Terug