Namecheap: Node JS Express App - возврат маршрута приложения 404 не найден - PullRequest
0 голосов
/ 19 мая 2019

Попытка запустить приложение Simple Express с помощью общего хостинга NameCheap.

Я настроил свое приложение Node JS, как описано здесь NodeJS NameCheap Docs

Текущая настройка:

Application Root: url.com
Application URL: url.com
Application Startup File: server.js

Я запустил NPM Install с помощью кнопки

Я попытался загрузить URL http://url.com/hello Ожидается, что Hello World отобразится на странице.

var express = require("express");
var app = express();
const port = 3001;

app.set("port", port);

app.get("/hello", function(req, res) {
  res.send("hello world");
});

app.listen(app.get("port"), () =>
  console.log("Started listening on %s", app.get("port"))
);

Результаты, которые я получаю при переходе на http://url.com/hello:

Not Found
The requested URL /index.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Ответы [ 2 ]

2 голосов
/ 19 мая 2019

Namecheap говорит только о том, как настроить приложение nodejs, однако их хостинг основан на cPanel, которая требует настройки веб-сервера (обычно apache).Как только вы запустите приложение, есть специальная кнопка, чтобы зарегистрировать его для конфигурации apache, иначе он будет запускаться с вашего домена.Я не знаю шаги наизусть, но вы должны попросить службу поддержки NC направить вас к их документации по настройке apache для запуска настроенного вами приложения nodejs.Если они не ссылаются на статью из своей базы знаний, воспользуйтесь этой ссылкой: https://confluence1.cpanel.net/plugins/servlet/mobile?contentId=17190639#content/view/17190639 По сути, сейчас вам нужно настроить cPanel или ssh на свой сервер и протестировать ваше приложение локально.Есть ряд вещей, которые могут вызвать ваши проблемы, такие как неправильная конфигурация apache (ваш порт 80 по умолчанию ищет приложение php), порт не открыт / не защищен брандмауэром, приложение не зарегистрировано - и все это зависит от cPanel.Чтобы убедиться, что вы читаете правильный документ, проверьте в namecheap cpanel кнопку docs и просмотрите все вышеперечисленное.Должно быть очевидно, что нужно настроить - ваш код nodejs, вероятно, не является причиной здесь

0 голосов
/ 03 июня 2019

В моем случае это была проблема с файлом .htaccess .Помогло добавление следующих правил в мой файл .htaccess , присутствующий в общедоступном каталоге веб-сайта:

# CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/<user>/<your_nodejs_app_folder>"
PassengerBaseURI "/."
PassengerNodejs "/home/<user>/nodevenv/<nodejs_app>/<version>/bin/node"
PassengerAppType node
PassengerStartupFile <startup_script>.js
# CLOUDLINUX PASSENGER CONFIGURATION END

Внесите необходимые изменения в вышеуказанные правила, прежде чем вставлять их в свой файл .htaccess.Также, на всякий случай, убедитесь, что используемый вами порт открыт через службу поддержки.

...