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 in anticipo che composer e node non siano disponibili e che le righe seguenti non generino alcun output:

16c389ff1cdd9380cc5f9244775eb6c8

Per prima cosa impostiamo le variabili di ambiente temporanee di cui avremo bisogno in seguito. Per fare ciò, determiniamo la directory utente dell'utente (di solito ~ /, su alcuni host condivisi anche / www / htdocs / xxxxxxx /) e la versione PHP desiderata (ad esempio con il provider All-Incl / usr / bin / php72, con DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Ora ci assicuriamo che l'ultima versione di PHP sia in esecuzione sulla console. Per fare ciò, creiamo una nuova cartella nella directory home, creiamo un collegamento software e aggiungiamo la directory all'inizio del PERCORSO.

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

Usiamo nvm per installare Node.js. Questo è uno script bash che viene effettivamente utilizzato per passare comodamente tra le versioni del nodo. Usiamo qui la proprietà che Node.js è installato senza diritti 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 stato in grado di eseguire tutti questi passaggi con alcuni provider di hosting condiviso tedeschi senza problemi. Alcuni hoster hanno problemi con i collegamenti simbolici, ma anche altri possono aiutare . Ad esempio, il seguente .bashrc aiuta con DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Ci sono anche problemi quando si accede a / proc / stat in ambienti virtuali / condivisi, motivo per cui la funzione del nodo os.cpus (), ad esempio, restituisce undefined invece del numero corretto di core . Quando si installano i pacchetti npm, questo porta a messaggi di errore come "Impossibile leggere la proprietà 'length' of undefined". Sono stato in grado di risolvere il problema utilizzando una versione corrente di Node.js (ad esempio 11.15.0) che ha risolto il problema.

Indietro