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 presentes y que las siguientes líneas no produzcan ningún resultado.:
16c389ff1cdd9380cc5f9244775eb6c8
Primero, definimos variables de entorno temporales que necesitaremos más adelante. Para ello, especificamos el directorio principal del usuario (normalmente ~/, en algunos hosts compartidos también /www/htdocs/xxxxxxx/) y la versión de PHP deseada (por ejemplo, /usr/bin/php72 con el proveedor All-Inkl , /usr/local/bin/php7-72LATEST-CLI con DomainFactory ).:
16c389ff1cdd9380cc5f9244775eb6c8
Ahora nos aseguraremos de que PHP se esté ejecutando en su última versión en la consola. Para ello, crearemos una nueva carpeta en el directorio principal, crearemos un enlace simbólico y añadiremos dicho directorio al principio de la variable de entorno PATH.
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. Se trata de un script de Bash diseñado para facilitar el cambio entre versiones de Node. Aquí aprovechamos su función de instalar Node.js sin necesidad de permisos de administrador.:
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 sin problemas con varios proveedores de alojamiento compartido alemanes. Algunos proveedores tienen problemas con los enlaces simbólicos, pero esto también se puede solucionar mediante definiciones de alias . Por ejemplo, el siguiente archivo .bashrc funciona para DomainFactory.:
16c389ff1cdd9380cc5f9244775eb6c8
También hay problemas, por ejemplo, al acceder a /proc/stat en entornos virtuales/compartidos, por lo que, por ejemplo, la función de nodo os.cpus() devuelve undefined en lugar del número de núcleo correcto. Esto genera mensajes de error como "No se puede leer la propiedad 'longitud' de indefinido" al instalar paquetes npm. Pude resolver el problema utilizando una versión reciente de Node.js (por ejemplo, 11.15.0) que solucionó el problema.