Node.js / npm / Composer sin root

En una publicación de blog anterior, describí cómo alojar Node.js de forma gratuita con Heroku . Ahora le mostraré una forma de instalar Node.js , npm y Composer en cualquier otro host compartido sin derechos de root con unas pocas líneas de código. Con él puede instalar paquetes, implementar aplicaciones Vue.js o simplemente iniciar un servidor Express.js. Siempre trabajamos en el directorio de usuarios y usamos nvm - el Node Package Manager.


Es importante asegurarse de antemano de que el compositor y el nodo no estén disponibles y que las siguientes líneas no generen ningún resultado:

16c389ff1cdd9380cc5f9244775eb6c8

Primero establecemos variables de entorno temporales que necesitaremos más adelante. Para hacer esto, determinamos el directorio de usuario del usuario (generalmente ~ /, en algunos hosts compartidos también / www / htdocs / xxxxxxx /) y la versión de PHP deseada (por ejemplo, con el proveedor All-Incl / usr / bin / php72, con DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Ahora nos aseguramos de que la última versión de PHP se esté ejecutando en la consola. Para hacer esto, creamos una nueva carpeta en el directorio de inicio, creamos un enlace suave y agregamos el directorio al comienzo de la RUTA.

16c389ff1cdd9380cc5f9244775eb6c8

Ahora instalamos el compositor global descargando, verificando y ejecutando el script de instalación, luego también colocando composer.phar en el directorio de usuario y creando un enlace simbólico nuevamente:

16c389ff1cdd9380cc5f9244775eb6c8

Usamos nvm para instalar Node.js. Este es un script bash que en realidad sirve para cambiar fácilmente entre versiones de nodo. Usamos la propiedad aquí de que Node.js está instalado sin derechos de root:

16c389ff1cdd9380cc5f9244775eb6c8

Una pequeña corrección en el .bashrc fue necesaria para mí.:

16c389ff1cdd9380cc5f9244775eb6c8

Ahora podemos instalar y activar la versión estable actual de Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

Con la ayuda de nvm también podemos cambiar de versión fácilmente.

16c389ff1cdd9380cc5f9244775eb6c8

Pude realizar todos estos pasos con algunos proveedores de alojamiento compartido alemanes sin ningún problema. Algunos hosts tienen problemas con los enlaces simbólicos, pero aliase también puede ayudar . Por ejemplo, el siguiente .bashrc ayuda con DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

También hay problemas al acceder a / proc / stat en entornos virtuales / compartidos, razón por la cual la función de nodo os.cpus (), por ejemplo, devuelve undefined en lugar del número correcto de núcleos . Al instalar paquetes npm, esto conduce a mensajes de error como "No se puede leer la propiedad 'longitud' de indefinida". Pude resolver el problema utilizando una versión reciente de Node.js (por ejemplo, 11.15.0) que abordó el problema.

Atrás