CentOS+VestaCP环境下Node.js启动app.js的正确路径查询
解决CentOS+VestaCP下Node.js找不到app.js的路径问题
首先得理清核心问题:你通过example.com/app.js能访问文件,说明它在网站的根目录里,但你默认登录SSH后处于/root目录,直接跑node app.js自然找不到——这俩完全是不同的位置。结合VestaCP的默认文件结构,给你几个靠谱的方法定位完整路径:
方法1:从VestaCP面板直接查看(最省心)
登录你的VestaCP后台,找到对应网站的管理页面:
- 进入
Web模块,找到目标域名(example.com) - 查看
Web Root字段,这里显示的就是网站文件的绝对路径(通常格式是/home/你的FTP用户名/web/example.com/public_html) - 你的app.js如果直接传到网站根目录,完整路径就是
[Web Root]/app.js
方法2:用FileZilla查看绝对路径
打开FileZilla连接服务器:
- 在右侧远程文件列表里找到
app.js - 右键点击文件,选择「文件属性」(或「属性」)
- 在弹出窗口的「绝对路径」栏,就能看到你需要的完整路径,直接复制即可
方法3:用SSH命令查找(适合命令行爱好者)
如果你已经在PuTTY登录了SSH,可以用以下命令:
全局搜索app.js文件:
find / -name "app.js" 2>/dev/null这个命令会遍历服务器所有目录查找app.js,
2>/dev/null用来过滤权限不足的错误提示,结果里会显示所有匹配的绝对路径,挑和你的网站对应的那条就行。手动定位网站目录后查看路径:
VestaCP的网站文件默认存在/home/你的FTP用户名/web目录下,先切换到对应路径:cd /home/你的FTP用户名/web/example.com/public_html然后输入
pwd命令,就能输出当前目录的绝对路径,加上app.js就是完整启动路径:pwd
关键注意事项
- 如果你路径里包含空格(比如你提到的
my ftp username),执行node命令时要给路径加引号,或者转义空格:
加引号写法:
转义空格写法:node "/home/my ftp username/web/example.com/public_html/app.js"node /home/my\ ftp\ username/web/example.com/public_html/app.js - 建议用PM2这类进程管理器启动Node.js应用,避免SSH断开后应用停止:
npm install -g pm2 pm2 start /完整路径/app.js
内容的提问来源于stack exchange,提问作者reswe teryuio
相关产品推荐
相关产品推荐

