Node.js / npm / Composer senza root

In un vecchio post del blog ho descritto come ospitare gratuitamente Node.js utilizzando Heroku . Ora ti mostrerò un modo per installare Node.js , npm e Composer su qualsiasi altro host condiviso senza diritti di root con poche righe di codice. Con esso puoi installare pacchetti, distribuire applicazioni Vue.js o semplicemente avviare un server Express.js. Lavoriamo sempre nella directory degli utenti e utilizziamo nvm , il Node Package Manager.


È importante assicurarsi preventivamente che compositore e nodo non siano presenti e che le righe successive non producano alcun output:

16c389ff1cdd9380cc5f9244775eb6c8

Innanzitutto, definiamo le variabili d'ambiente temporanee che ci serviranno in seguito. Per fare ciò, specifichiamo la directory home dell'utente (di solito ~/, su alcuni host condivisi anche /www/htdocs/xxxxxxx/) e la versione di PHP desiderata (ad esempio, /usr/bin/php72 con il provider All-Inkl , /usr/local/bin/php7-72LATEST-CLI con DomainFactory ).:

16c389ff1cdd9380cc5f9244775eb6c8

Ora ci assicureremo che PHP sia in esecuzione nella sua versione più recente sulla console. Per fare ciò, creeremo una nuova cartella nella directory home, creeremo un collegamento simbolico e aggiungeremo la directory all'inizio della variabile d'ambiente PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Ora installiamo il compositore globale scaricando, controllando ed eseguendo lo script di installazione, quindi posizionando composer.phar nella directory dell'utente e creando nuovamente un collegamento simbolico:

16c389ff1cdd9380cc5f9244775eb6c8

Utilizziamo nvm per installare Node.js. Si tratta di uno script Bash progettato per semplificare il passaggio tra diverse versioni di Node. In questo caso, sfruttiamo la sua funzionalità che permette di installare Node.js senza richiedere i privilegi di root.:

16c389ff1cdd9380cc5f9244775eb6c8

Per me è stata necessaria una piccola correzione nel file .bashrc:

16c389ff1cdd9380cc5f9244775eb6c8

Ora possiamo installare e attivare l'attuale versione stabile di Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

Con l'aiuto di nvm possiamo anche cambiare facilmente versione.

16c389ff1cdd9380cc5f9244775eb6c8

Sono riuscito a eseguire tutti questi passaggi senza problemi con diversi provider di hosting condiviso tedeschi. Alcuni host hanno problemi con i link simbolici, ma anche questo può essere risolto utilizzando le definizioni di alias . Ad esempio, il seguente file .bashrc funziona per DomainFactory.:

16c389ff1cdd9380cc5f9244775eb6c8

Ci sono anche problemi, ad esempio, quando si accede a /proc/stat in ambienti virtuali/condivisi, motivo per cui, ad esempio, la funzione del nodo os.cpus() restituisce undefinito invece del numero di core corretto. Ciò porta a messaggi di errore come "Impossibile leggere la proprietà 'lunghezza' di undefinito" durante l'installazione dei pacchetti npm. Sono riuscito a risolvere il problema utilizzando una versione recente di Node.js (ad esempio 11.15.0) che ha risolto il problema.

Indietro