Como hospedar um aplicativo Node.Js em uma hospedagem compartilhada
Quero hospedar um aplicativo node.js em hospedagem compartilhada. Alguém tem alguma referência ou documentação para consultar?
Como hospedar um aplicativo Node.Js em uma hospedagem compartilhada
Quero hospedar um aplicativo node.js em hospedagem compartilhada. Alguém tem alguma referência ou documentação para consultar?
Respostas:
Você pode executar o servidor node.js em uma hospedagem compartilhada típica com Linux, Apache e PHP (LAMP). Eu instalei com sucesso, mesmo com NPM, Express e Grunt funcionando bem. Siga os passos:
1) Crie um novo arquivo PHP no servidor com o seguinte código e execute-o:
<?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) Da mesma forma, instale seu aplicativo de nó, por exemplo, jt-js-sample, usando npm:
<?php
exec('node/bin/npm install jt-js-sample');
3) Execute o aplicativo node do 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! Dê uma olhada na demonstração de um aplicativo de nó em hospedagem compartilhada em PHP .
EDIT: eu comecei um projeto Node.php no GitHub .
Conecte-se com SSH e siga estas instruções para instalar o Node em uma hospedagem compartilhada
Resumindo, primeiro você instala o NVM, depois instala a versão do Node de sua escolha com o NVM.
wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash
Reinicie seu shell (feche e reabra suas sessões). Então você
nvm install stable
para instalar a última versão estável, por exemplo. Você pode instalar qualquer versão de sua escolha. Verifique node --version
a versão do nó que você está usando atualmente e nvm list
veja o que você instalou.
No bônus, você pode mudar de versão facilmente ( nvm use <version>
)
Não há necessidade de PHP ou qualquer outra alternativa complicada se você tiver SSH.
nvm:command not found
tiver, pode executar este: commandsource ~/.nvm/nvm.sh
Instalei o Node.js em bluehost.com (um servidor compartilhado) usando:
wget <path to download file>
tar -xf <gzip file>
mv <gzip_file_dir> node
Isso fará o download do arquivo tar, extrairá para um diretório e então renomeará esse diretório com o nome 'nó' para torná-lo mais fácil de usar.
então
./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)
Agora posso usar os comandos:
# ~/node/bin/node -v
v0.12.4
# ~/node/bin/npm -v
2.10.1
Por razões de segurança, renomeei meu diretório de nó para outra coisa.
npm start
no jt-js-sample
e fui para mysite.com:5000 mas dizia que a página não está disponível. Eu preciso ir para o endereço IP em vez disso?
A2 Hosting permite node.js em suas contas de hospedagem compartilhadas. Posso garantir que tive uma experiência positiva com eles.
Aqui estão as instruções em seu KnowledgeBase para instalar node.js usando Apache / LiteSpeed como um proxy reverso: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- contas de hospedagem . Leva cerca de 30 minutos para definir a configuração e funcionará com npm, Express, MySQL, etc.
Veja a2hosting.com.
Você deve procurar uma empresa de hospedagem que ofereça esse recurso, mas a hospedagem simples padrão estática + PHP + MySQL não permitirá que você use node.js.
Você precisa encontrar uma hospedagem projetada para node.js ou comprar um servidor virtual privado e instalá-lo você mesmo.