我正在尝试在Linode(Ubuntu 12.04)上部署节点应用程序,同时遵循Node Knockout的指南:http://blog.nodeknockout.com/post/9300619913/countdown-to-ko-14-deploying-your-node-js-app-to
我以root身份运行服务器没有问题,但是当尝试使用sudo start node
作为“部署”用户启动服务器时,我收到此错误:
/home/deploy/app/source/node_modules/bcrypt/node_modules/bindings/bindings.js:79
throw e
^
Error: Module version mismatch. Expected 11, got 1.
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at bindings (/home/deploy/app/source/node_modules/bcrypt/node_modules/bindings/$
at Object.<anonymous> (/home/deploy/app/source/node_modules/bcrypt/bcrypt.js:1:$
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
我尝试使用make clean
然后make
重新编译bcrypt,因为我认为我的模块版本与我的节点版本(v0.8.18)不兼容,但似乎不是这样的,因为我可以以root身份启动服务器,没有任何问题。我觉得问题在于我如何设置部署用户,但我不知道如何继续。