Node.js / npm / Composer sans racine

Dans un article de blog plus ancien, j'ai décrit comment héberger Node.js gratuitement en utilisant Heroku . Maintenant, je vais vous montrer comment installer Node.js , npm et Composer sur n'importe quel autre hôte partagé sans droits root avec quelques lignes de code. Avec lui, vous pouvez installer des packages, déployer des applications Vue.js ou simplement démarrer un serveur Express.js. Nous travaillons toujours dans le répertoire utilisateur et utilisons nvm - le gestionnaire de packages de nœuds.


Il est important de s'assurer au préalable que composer et node ne sont pas présents et que les lignes suivantes ne produisent aucune sortie:

16c389ff1cdd9380cc5f9244775eb6c8

Nous commençons par définir des variables d'environnement temporaires dont nous aurons besoin ultérieurement. Pour ce faire, nous spécifions le répertoire personnel de l'utilisateur (généralement ~/, sur certains hébergements mutualisés également /www/htdocs/xxxxxxx/) et la version PHP souhaitée (par exemple, /usr/bin/php72 avec le fournisseur All-Inkl , /usr/local/bin/php7-72LATEST-CLI avec DomainFactory ).:

16c389ff1cdd9380cc5f9244775eb6c8

Nous allons maintenant nous assurer que PHP est exécuté dans sa dernière version sur la console. Pour ce faire, nous allons créer un nouveau dossier dans le répertoire personnel, créer un lien symbolique et ajouter ce dossier au début de la variable d'environnement PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Maintenant, nous installons global composer en téléchargeant, vérifiant et exécutant le script d'installation, puis en plaçant également composer.phar dans le répertoire utilisateur et en créant à nouveau un lien symbolique:

16c389ff1cdd9380cc5f9244775eb6c8

Nous utilisons nvm pour installer Node.js. Il s'agit d'un script Bash conçu pour simplifier le passage d'une version de Node à une autre. Ici, nous tirons parti de sa fonctionnalité permettant d'installer Node.js sans privilèges root.:

16c389ff1cdd9380cc5f9244775eb6c8

Une petite correction dans le .bashrc a été nécessaire pour moi:

16c389ff1cdd9380cc5f9244775eb6c8

Nous pouvons maintenant installer et activer la version stable actuelle de Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

Avec l'aide de NVM, nous pouvons également facilement changer de version.

16c389ff1cdd9380cc5f9244775eb6c8

J'ai pu réaliser toutes ces étapes sans problème avec plusieurs hébergeurs mutualisés allemands. Certains hébergeurs rencontrent des difficultés avec les liens symboliques, mais cela peut être résolu à l'aide d'alias . Par exemple, le fichier .bashrc suivant fonctionne avec DomainFactory.:

16c389ff1cdd9380cc5f9244775eb6c8

Il existe également des problèmes, par exemple, lors de l'accès à /proc/stat dans des environnements virtuels/partagés, c'est pourquoi, par exemple, la fonction de nœud os.cpus() renvoie undefined au lieu du numéro de noyau correct. Cela conduit à des messages d'erreur tels que "Impossible de lire la propriété 'longueur' non définie" lors de l'installation des packages npm. J'ai pu résoudre le problème en utilisant une version récente de Node.js (par exemple 11.15.0) qui résolvait le problème.

Retour