我正在尝试在 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
then重新编译 bcrypt,make
因为我认为我的模块版本与我的节点版本(v0.8.18)不兼容,但情况似乎并非如此,因为我可以毫无问题地以 root 身份启动服务器。我觉得问题在于我如何设置部署用户,但我不确定如何继续。