是的,这是可能的。不知何故,我从未见过有人真正正确地回答这个问题。这适用于最基本的共享托管计划。我已经成功地通过几种不同的方式进行了设置。我觉得第二个可能是你想要的 :
1.cgi节点 http://www.cgi-node.org/home http://www.cgi-node.org/home
基本上这取代了灯栈上的 PHP。您可以像运行 PHP 一样通过 Node 运行 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>
OR
2. 独立服务器(这适用于 NameCheap 托管和 GoDaddy 共享托管)
在您的共享主机帐户中,您将需要 SSH 才能执行此操作。因此,您可能需要升级或向其客户支持请求 SSH 访问权限。下载最新的 NodeJShttps://nodejs.org/en/download/ https://nodejs.org/en/download/。共享主机可能是 linux 64 位。您可以通过运行以下命令在 linux 或 unix 上检查这一点:
uname -a
下载 Linux 二进制文件并将下载的 bin/node (如果您想在服务器上使用 npm,则还需要 bin/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 等。