Cómo alojar una aplicación Node.Js en un alojamiento compartido
Quiero alojar una aplicación node.js en alojamiento compartido. ¿Alguien tiene alguna referencia o documentación para consultar?
Cómo alojar una aplicación Node.Js en un alojamiento compartido
Quiero alojar una aplicación node.js en alojamiento compartido. ¿Alguien tiene alguna referencia o documentación para consultar?
Respuestas:
Usted puede ejecutar el servidor Node.js en un típico alojamiento compartido con Linux, Apache y PHP (LAMP). Lo he instalado con éxito, incluso con NPM, Express y Grunt funcionando bien. Sigue los pasos:
1) Cree un nuevo archivo PHP en el servidor con el siguiente código y ejecútelo:
<?php
//Download and extract the latest node
exec('curl http://nodejs.org/dist/latest/node-v0.10.33-linux-x86.tar.gz | tar xz');
//Rename the folder for simplicity
exec('mv node-v0.10.33-linux-x86 node');
2) De la misma manera instale su aplicación de nodo, por ejemplo, jt-js-sample, usando npm:
<?php
exec('node/bin/npm install jt-js-sample');
3) Ejecute la aplicación de nodo desde PHP:
<?php
//Choose JS file to run
$file = 'node_modules/jt-js-sample/index.js';
//Spawn node server in the background and return its pid
$pid = exec('PORT=49999 node/bin/node ' . $file . ' >/dev/null 2>&1 & echo $!');
//Wait for node to start up
usleep(500000);
//Connect to node server using cURL
$curl = curl_init('http://127.0.0.1:49999/');
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//Get the full response
$resp = curl_exec($curl);
if($resp === false) {
//If couldn't connect, try increasing usleep
echo 'Error: ' . curl_error($curl);
} else {
//Split response headers and body
list($head, $body) = explode("\r\n\r\n", $resp, 2);
$headarr = explode("\n", $head);
//Print headers
foreach($headarr as $headval) {
header($headval);
}
//Print body
echo $body;
}
//Close connection
curl_close($curl);
//Close node server
exec('kill ' . $pid);
¡Voila! Eche un vistazo a la demostración de una aplicación de nodo en alojamiento compartido PHP .
EDITAR: comencé un proyecto Node.php en GitHub .
Conéctese con SSH y siga estas instrucciones para instalar Node en un alojamiento compartido
En resumen, primero instala NVM, luego instala la versión de nodo de su elección con NVM.
wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash
Reinicia tu shell (cierra y vuelve a abrir tus sesiones). Entonces tú
nvm install stable
para instalar la última versión estable, por ejemplo. Puede instalar cualquier versión de su elección. Verifique node --version
la versión de nodo que está utilizando actualmente y nvm list
para ver qué ha instalado.
Además, puede cambiar de versión muy fácilmente ( nvm use <version>
)
No hay necesidad de PHP ni ninguna solución complicada si tiene SSH.
nvm:command not found
, puedes ejecutar esto: comandosource ~/.nvm/nvm.sh
Instalé Node.js en bluehost.com (un servidor compartido) usando:
wget <path to download file>
tar -xf <gzip file>
mv <gzip_file_dir> node
Esto descargará el archivo tar, lo extraerá a un directorio y luego cambiará el nombre de ese directorio a "nodo" para que sea más fácil de usar.
luego
./node/bin/npm install jt-js-sample
Returns:
npm WARN engine jt-js-sample@0.2.4: wanted: {"node":"0.10.x"} (current: {"node":"0.12.4","npm":"2.10.1"})
jt-js-sample@0.2.4 node_modules/jt-js-sample
└── express@4.12.4 (merge-descriptors@1.0.0, utils-merge@1.0.0, cookie-signature@1.0.6, methods@1.1.1, cookie@0.1.2, fresh@0.2.4, escape-html@1.0.1, range-parser@1.0.2, finalhandler@0.3.6, content-type@1.0.1, vary@1.0.0, parseurl@1.3.0, serve-static@1.9.3, content-disposition@0.5.0, path-to-regexp@0.1.3, depd@1.0.1, qs@2.4.2, on-finished@2.2.1, debug@2.2.0, etag@1.6.0, proxy-addr@1.0.8, send@0.12.3, type-is@1.6.2, accepts@1.2.7)
Ahora puedo usar los comandos:
# ~/node/bin/node -v
v0.12.4
# ~/node/bin/npm -v
2.10.1
Por razones de seguridad, he cambiado el nombre de mi directorio de nodos por otro.
npm start
en el jt-js-sample
y fui a mysite.com:5000 pero dicha página no está disponible. ¿Necesito ir a la dirección IP en su lugar?
A2 Hosting permite node.js en sus cuentas de alojamiento compartido. Puedo dar fe de que he tenido una experiencia positiva con ellos.
Aquí hay instrucciones en su KnowledgeBase para instalar node.js usando Apache / LiteSpeed como proxy inverso: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- cuentas de hosting . Se tarda unos 30 minutos en configurar la configuración y funcionará con npm, Express, MySQL, etc.
Consulte a2hosting.com.
Debería buscar una empresa de alojamiento que ofrezca dicha función, pero el alojamiento estándar simple estático + PHP + MySQL no le permitirá utilizar node.js.
Necesita encontrar un alojamiento diseñado para node.js o comprar un servidor privado virtual e instalarlo usted mismo.