Procédure
¿Qué es Node.js?
Node.js es un entorno de ejecución de código abierto y multiplataforma que le permite crear un sitio web o una aplicación y alojarla en un servidor, utilizando el lenguaje JavaScript. En nuestros paquetes cPanel L, cPanel XL, cPanel 2XL, cPanel 3XL y CloudCP, le proporcionamos el gestor de aplicaciones Node.js para que pueda configurar una aplicación Node.js en su paquete de alojamiento web cPanel. Están disponibles las versiones 6 a 24 de Node.js.
¿Qué es Phusion Passenger?
Para proporcionar a nuestros clientes un entorno estable y robusto para Node.js, integramos sus aplicaciones Node.js con el servidor web Apache utilizando la herramienta Phusion Passenger.
No configuramos un proxy inverso, y las aplicaciones Node.js no pueden ejecutarse de forma autónoma en su propio servidor web. Si está acostumbrado a ejecutar su servidor Node.js con un comando como node server, npm run start o pm2 start myapp, no podrá hacerlo en nuestros paquetes de alojamiento cPanel. Si utiliza un framework, compruebe que es compatible con Phusion Passenger.
La ejecución de tu aplicación Node.js será gestionada por Phusion Passenger, se encargará de ejecutar tu archivo .js con la versión correcta de node, y capturará la llamada a la función http.Server listen() para configurar la conexión entre tu aplicación y el propio servidor web Apache.
¿Cómo instalo una aplicación Node.js?
Conéctese a su interfaz de gestión cPanel y haga clic en el icono"Setup Node.js App".

En la página que aparece a continuación, haga clic en el botón"Crear aplicación" para añadir una nueva aplicación.

A continuación, rellene los campos necesarios para su aplicación:
- Versión de Node.js: la versión de Node.js que requiere tu aplicación.
- Modo de aplicación: le permite definir el modo de ejecución de su aplicación, ya sea modo desarrollador o modo producción. Esto manipula la variable de entorno NODE_ENV, permitiendo que los errores se muestren en modo desarrollador (lo cual es útil para propósitos de depuración, pero también puede ser problemático para una aplicación de producción).
- Raíz de la aplicación: la ubicación de tu aplicación Node.js, relativa a tu raíz FTP. Te recomendamos que no pongas tu aplicación Node.js en la carpeta public_html.
- URL de la aplicación: la URL raíz de tu aplicación Node.js.
- Archivo de inicio de la aplicación: el nombre del archivo .js que Passenger enviará a Node.js para iniciar tu aplicación.

Una vez configurada tu aplicación, haz clic en el botón"Crear".
Si su archivo de inicio de aplicación aún no existe, la herramienta creará inmediatamente este archivo con contenido de ejemplo. Este ejemplo mostrará "¡Funciona! " en todas las peticiones HTTP asociadas a él.
He aquí el contenido de este script de ejemplo :
var http = require('http'); var server = http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); var message = '¡Funciona!\n', version = 'NodeJS ' + process.versions.node + '\n', response = [message, version].join('\n'); res.end(response); }); server.listen();
También puedes editar el archivo package.json desde la interfaz para añadir dependencias e instalarlas usando el botón "Run NPM Install ":

Ten en cuenta que necesitas reiniciar tu aplicación si sus dependencias han sido modificadas.
También puedes definir variables de entorno en la sección Variables de entorno si tu aplicación depende de ellas para obtener determinados parámetros.
Acceso a su aplicación desde el terminal
El uso del terminal de línea de comandos es una parte integral del ecosistema Node.js. Para acceder al entorno de tu aplicación desde la terminal, conéctate a ella (desde la terminal web de cPanel o desde un cliente SSH) y copia el comando que se muestra para entrar en el entorno de tu aplicación:

Esta acción activará automáticamente el entorno virtual correcto para tu aplicación, incluyendo la versión correcta de Node.js y NPM, así como las dependencias instaladas en el entorno (en lugar de estar instaladas en la carpeta "node_modules " de tu carpeta de aplicaciones).
Depuración de una aplicación Node.js
Para depurar una aplicación Node.js, puede consultar el registro de errores de Apache. El archivo de registro de errores de Apache contiene archivos :
- Salidas STDOUT y STDERR de la aplicación Node.js
- Errores relacionados con Passenger
- Errores relacionados con Apache
Si ha establecido manualmente el valor PassengerLogFile en el archivo .htaccess de su sitio, la salida STDOUT y STDERR y los errores relacionados con Passenger se envían a este archivo en lugar de al archivo de registro de Apache.
También puede establecer el valor PassengerFriendlyErrorPages a on en su archivo .htaccess para mostrar los errores relacionados con la puesta en marcha de su aplicación Node.js directamente en el navegador web.
Errores comunes de Node.js
Proceso detenido al ejecutar npm install
Posibles razones: Su proceso puede ser detenido por el servidor si se está ejecutando más allá del tiempo de ejecución y/o cantidad de recursos (CPU, RAM, etc.) autorizados para su paquete de alojamiento. Puede consultar el histórico de paradas de procesos utilizando nuestra herramienta "Logs " disponible desde su interfaz cPanel.
Solución: Puede limitar la memoria RAM utilizada por npm utilizando la variable de entorno NODE_OPTIONS de la siguiente manera:
NODE_OPTIONS='--max-old-space-size=2048' npm install
Este ejemplo muestra, por ejemplo, un límite de 2048 MiB (2 GB).
Directorio especificado ya utilizado por /home/$USER/public_html/monapp cuando se creó desde Setup Node.js App
Posibles razones :
- Ya existe una aplicación Node.js, Python o Ruby publicada en el directorio especificado.
- Laaplicación raíz y laaplicación URL especificada apuntan a la misma carpeta.
Solución:
- Compruebe que no hay ninguna aplicación Node.js, Python o Ruby publicada en la carpeta especificada. Puede comprobar el archivo .htaccess de la carpeta en cuestión desde el gestor de archivos o su cliente FTP habitual para identificarlo rápidamente.
- Asegúrese de que los archivos de su aplicación (.js, package.json ...) indicados por la raíz de la aplicación no se encuentran en la carpeta de publicación indicada por la URL de la aplicación. A diferencia de las aplicaciones PHP, los archivos de una aplicación Node.js no necesitan ni deben estar ubicados en public_html.