DirectAdmin虚拟主机Node.js应用启动失败:权限被拒求助
解决DirectAdmin主机Node.js应用启动权限问题
问题核心
报错Permission denied指向node_modules/.bin/MyNodeApp,本质是该脚本文件缺少执行权限。由于你是直接上传本地打包的node_modules,本地文件权限无法同步到远程主机,加上DirectAdmin共享主机的权限限制,导致脚本无法执行。
修复方案
1. 给目标脚本添加执行权限
通过DirectAdmin文件管理器或SSH(若有权限)操作:
- 文件管理器方式:找到
/.../MyNodeApp/node_modules/.bin/MyNodeApp,右键修改权限,勾选「执行」(建议设为755权限) - SSH命令方式:
chmod +x /.../MyNodeApp/node_modules/.bin/MyNodeApp
2. 绕过.bin脚本,直接用Node执行入口文件
如果修改权限无效或主机限制权限修改,直接跳过.bin脚本,修改package.json的start命令,直接调用Node运行应用入口文件。假设应用入口是index.js:
"scripts": { "start": "node index.js start" }
上传修改后的package.json,再执行npm run start。
3. 检查Node版本兼容性
确认本地安装node_modules时的Node版本,和DirectAdmin主机上的Node版本一致。版本不兼容也会导致脚本执行异常,可通过以下命令查看主机Node版本:
node -v
若版本差异大,在本地用对应版本(可通过nvm切换)重新安装依赖后再打包上传。
额外注意
- 上传文件时用FTP工具的二进制模式,避免文本模式损坏脚本文件
- 若为长期运行的服务,可尝试使用DirectAdmin自带的Node.js管理器托管应用(如果主机提供该功能)
内容的提问来源于stack exchange,提问作者budgiebeaks
相关产品推荐
相关产品推荐

