尝试使用NameCheap共享主机启动Simple Express应用程序。
所述设置了Node JS应用程序。当前设置:
Application Root: url.com
Application URL: url.com
Application Startup File: server.js
我已使用提供的按钮运行了NPM安装
我尝试加载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.
答案 0 :(得分:2)
Namecheap仅告诉您如何配置nodejs应用程序,但是其托管基于cPanel,这需要您配置Web服务器(通常为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代码可能不是这里的原因
答案 1 :(得分:0)
以我为例,这是 .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文件中。另外,以防万一,请通过客户支持确认您使用的端口是开放的。