如何在共享主机中托pipeNode.Js应用程序

如何在共享主机中托pipeNode.Js应用程序

我想在共享主机中托pipe一个node.js应用程序。 有没有人有任何参考或文件参考。

提前致谢

可以在Linux,Apache和PHP(LAMP)的典型共享主机上运行node.js服务器。 我已经成功地安装了它,即使使用NPM,Express和Grunt也能正常工作。 按照步骤:

1)使用下面的代码在服务器上创build一个新的PHP文件并运行它:

<?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)以相同的方式安装您的节点应用程序,例如jt-js-sample,使用npm:

 <?php exec('node/bin/npm install jt-js-sample'); 

3)从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); 

瞧! 看看PHP共享主机上的节点应用程序的演示 。

编辑:我开始在GitHub Node.php项目 。

使用SSH连接并按照这些说明在共享主机上安装节点

总之,首先安装NVM,然后使用NVM安装您select的Node版本。

 wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash 

你重新启动你的shell(closures并重新打开你的会话)。 然后你

 nvm install stable 

以安装最新的稳定版本为例。 你可以安装你select的任何版本。 检查node --version版本,您正在使用的节点版本和nvm list ,看看你已经安装。

在奖金,你可以很容易地切换版本( nvm use <version>

如果您使用SSH,则不需要PHP或任何棘手的解决方法。

我使用以下方法在bluehost.com(共享服务器)上安装了Node.js:

 wget <path to download file> tar -xf <gzip file> mv <gzip_file_dir> node 

这将下载tar文件,解压缩到一个目录,然后将该目录重命名为“节点”以使其更易于使用。

然后

 ./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) 

我现在可以使用这些命令:

 # ~/node/bin/node -v v0.12.4 # ~/node/bin/npm -v 2.10.1 

出于安全原因,我已经将我的节点目录重命名为其他内容。

A2主机允许其共享主机帐户上的node.js。 我可以保证我对他们有一个积极的经验。

这里是在他们的知识库中使用Apache / LiteSpeed作为反向代理来安装node.js的说明: https ://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- 托pipe帐户 。 大概需要30分钟的时间来设置configuration,它将与npm,Express,MySQL等一起工作。

请参阅a2hosting.com。

你应该寻找一个托pipe公司,提供这样的function,但标准的简单的静态+ PHP + MySQL托pipe不会让你使用node.js。

您需要find为node.jsdevise的主机,或者购买虚拟专用服务器并自行安装。