2016-10-20 5 views

ответ

1

Да, это возможно. Почему-то я никогда не видел, чтобы кто-то действительно правильно отвечал на этот вопрос. Это работает с большинством базовых общих планов хостинга. Я успешно смог установить несколько разных способов. Я думаю, что второй, вероятно, что вы хотите:

1. CGI-узелhttp://www.cgi-node.org/home

В основном это заменяет PHP на стеке лампы. Вы можете запускать javascript через узел, как если бы вы запускали PHP. Это имеет все те же функциональные возможности узла 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/. Общий хостинг, вероятно, в 64-битном режиме Linux. Вы можете проверить это на Linux или UNIX, запустив:

uname -a 

Скачать бинарные файлы Linux и положить бен/узел (и файл бен/НМП, если вы хотите использовать НПМ на сервере) файл из загрузки в/home/username/bin/(создайте папку bin, если она не существует) на сервере. Вставьте разрешения 755 в двоичный файл узла. Таким образом, вы должны иметь новый файл здесь:

/home/username/bin/node

Открываем файл .htaccess в/главная/имя пользователя/public_html и добавьте следующие строки:

RewriteEngine on 
RewriteRule (.*) http://localhost:3000/$1 [P,L] 

Создать файл в/дома/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 и т. д.

Смежные вопросы