任何人都有关于如何在 Godaddy 上安装节点服务器的想法或参考。我们有 Godaddy 共享主机,它提供完整的 Cpanel 并希望自定义此共享主机。要遵循的步骤是什么?我们是否可以通过在 Cpanel 设置中进行编辑来自定义这种托管?
我曾尝试托管 Node.js 网站,但无法启动并运行它显示的是纯 HTML 编码的网站,而不是用户界面。
任何人都有关于如何在 Godaddy 上安装节点服务器的想法或参考。我们有 Godaddy 共享主机,它提供完整的 Cpanel 并希望自定义此共享主机。要遵循的步骤是什么?我们是否可以通过在 Cpanel 设置中进行编辑来自定义这种托管?
我曾尝试托管 Node.js 网站,但无法启动并运行它显示的是纯 HTML 编码的网站,而不是用户界面。
是的,这是可能的。不知何故,我从未见过有人真正正确地回答了这个问题。这适用于最基本的共享托管计划。我已经成功地设置了几种不同的方式。我认为第二个可能是您想要的:
1. cgi-node http://www.cgi-node.org/home
基本上这取代了灯栈上的 PHP。您可以像运行 PHP 一样通过节点运行 javascript。这与 node js 具有所有相同的功能,但仅适用于模板渲染。
<html>
<body>
<?
var helloWorld = 'Hello World!';
write(helloWorld + '<br/>');
?>
<?= helloWorld ?>
<br/>
<b>I can count to 10: </b>
<?
for (var index= 0; index <= 10; index++) write(index + ' ');
?>
<br/>
<b>Or even this: </b>
<?
for (var index= 0; index <= 10; index++) {
?>
<?= index ?>
<? } ?>
</body>
</html>
或者
2. 独立服务器(这适用于 NameCheap 主机和 GoDaddy 共享主机)
在您的共享主机帐户中,您需要 SSH 才能执行此操作。因此,您可能需要升级或向他们的客户支持请求 SSH 访问权限。下载最新的 NodeJS https://nodejs.org/en/download/。共享主机可能是 linux 64 位。您可以通过运行在 linux 或 unix 上进行检查:
uname -a
下载 Linux 二进制文件并将 bin/node(以及 bin/npm 文件,如果你想在服务器上使用 npm)文件从 /home/username/bin/ 中下载(如果 bin 文件夹不存在,则创建它) 在服务器上。将权限 755 放在节点二进制文件上。所以你应该在这里有一个新文件:
/home/username/bin/node
打开 /home/username/public_html 中的 .htaccess 文件并添加以下行:
RewriteEngine on
RewriteRule (.*) http://localhost:3000/$1 [P,L]
在 /home/username/public_html 中创建一个文件并将其命名为 app.js。在该文件中添加以下行:
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('NodeJS server running on Shared Hosting\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
SSH 进入服务器运行以下命令:
cd /home/username/public_html
which node # this should return ~/bin/node
node app.js & # This will create a background process with the server running
如果您可以正确设置此设置,从长远来看,这将为您节省大量资金,而不是使用 AWS 或 Heroku 等。
我通过以下方式在 Godaddy 共享主机上安装了多个域的节点:
SSH到godaddy服务器
在主文件夹中安装 nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm install 10.14.0
(或首选节点版本)注意:如果您在执行时遇到 nvm command not found $nvm --version
,只需关闭并重新启动 SSH 终端
在要运行节点应用程序的站点的文件夹中,添加.httaccess
文件
~/public_html/site folder/.htaccess
重写引擎开启
RewriteRule (.*) http://localhost:3000/$1 [P,L]
注意:.htaccess
可用于定位单个文件夹,更改立即生效,无需重新启动服务器。
如@nebulr 所示,在站点文件夹中运行您的 app.js 或节点服务器
$node app.js &
另一种方法是通过 NVM。首先使用 SSH 连接到您的服务器。然后有一个 curl 命令允许您通过 bash 脚本安装 NVM:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
对我来说,还需要两个额外的步骤:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
资料来源:
您有两种选择来托管节点应用程序。- 从 godaddy 或 digitalocean 等处购买您自己的 VPS 服务器。 - Godaddy 本身提供运行其节点实例的选项。请参考https://in.godaddy.com/pro/one-click-installation/node-js
正如@nebuir 所说,可以使用 GoDaddy 的共享主机选项运行您的 node.js 开发的应用程序,因为我刚刚这样做了。.htaccess 部分是完成这项工作的关键。我需要添加的唯一另一行是
RewriteRule ^index.html.var$ http://www.yoursite.com:3000/$1 [L,P,QSA]
前
RewriteRule (.*) http://www.yoursite.com:3000/$1 [P,L]