我已经按照Heroku网站上的指南来使用工头运行节点服务器:
http://devcenter.heroku.com/articles/node-js
如果我直接加载它,我可以成功启动节点服务器,但是只要我在Procfile中使用Foreman,就会出现以下错误...
My-MacBook-Air:myDirectory digiguru$ foreman start
13:25:26 web.1 | started with pid 29046
13:25:26 web.1 | /usr/local/foreman/lib/foreman/process.rb:38:in `exec': Permission denied - /usr/local/foreman/bin/runner (Errno::EACCES)
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/process.rb:38:in `fork_with_io'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/process.rb:32:in `fork'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/process.rb:32:in `fork_with_io'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/process.rb:44:in `run_process'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/process.rb:19:in `run'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/process.rb:64:in `with_environment'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/process.rb:18:in `run'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/process.rb:17:in `chdir'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/process.rb:17:in `run'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/procfile_entry.rb:17:in `spawn'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/procfile_entry.rb:15:in `map'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/procfile_entry.rb:15:in `spawn'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/engine.rb:63:in `spawn_processes'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/engine.rb:61:in `each'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/engine.rb:61:in `spawn_processes'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/engine.rb:45:in `start'
13:25:26 web.1 | from /usr/local/foreman/lib/foreman/cli.rb:28:in `start'
13:25:26 web.1 | from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor/task.rb:22:in `send'
13:25:26 web.1 | from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'
13:25:26 web.1 | from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'
13:25:26 web.1 | from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor.rb:263:in `dispatch'
13:25:26 web.1 | from /usr/local/foreman/vendor/gems/thor-0.14.6/lib/thor/base.rb:389:in `start'
13:25:26 web.1 | from /usr/bin/foreman:15
13:25:26 web.1 | process terminated
13:25:26 system | sending SIGTERM to all processes
我有什么办法可以给予Forman许可吗?我试过sudo foreman start
,但无济于事。
我在ruby版本1.9.3中运行(默认情况下从Lion上安装的1.8.7版本升级)。
更新
在sudo foreman start
从红宝石宝石安装heruko和工头后运行@user658619
,我们得到......
/Users/digiguru/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find foreman (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
from /Users/digiguru/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /Users/digiguru/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems.rb:1208:in `gem'
from /Users/digiguru/.rvm/gems/ruby-1.9.3-p0/bin/foreman:18:in `<main>'
我的环境......
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.15
- RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [x86_64-darwin11.2.0]
- INSTALLATION DIRECTORY: /Users/digiguru/.rvm/gems/ruby-1.9.3-p0
- RUBY EXECUTABLE: /Users/digiguru/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
- EXECUTABLE DIRECTORY: /Users/digiguru/.rvm/gems/ruby-1.9.3-p0/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-11
- GEM PATHS:
- /Users/digiguru/.rvm/gems/ruby-1.9.3-p0
- /Users/digiguru/.rvm/gems/ruby-1.9.3-p0@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
答案 0 :(得分:1)
我今天遇到了同样的问题。您是否通过heroku-toolbelt.pkg安装了heroku?
尝试使用gem重新安装heroku和foreman。
sudo gem install heroku foreman
答案 1 :(得分:0)
基本上为了让它工作,我不幸地把我的装置弄得乱七八糟地混合了红宝石和宝石,其中一些需要SUDO,有些则不需要。
幸运的是,互联网的优秀人员使用名为RVM的工具
为您解决了这个问题RVM允许您使用自己完全独立的专用环境部署每个项目 - 从特定版本的ruby,一直到运行应用程序所需的精确宝石集。拥有一组精确的宝石还可以避免项目之间的版本冲突问题,这可能导致难以追踪的错误和数小时的脱发。
首先下载RVM
$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
执行此操作后,您将需要打开一个新的终端窗口。
清理。如果你有奇怪的安装宝石,你会想要删除它们。转到你的根目录,sudo摆脱它们。您可以使用gem list
命令
cd
sudo gem list
sudo gem uninstall foreman heroku
安装ruby。您应该在应用程序的子目录中执行此操作。我选择了1.9.3
cd myApp
rvm install 1.9.3
添加您需要的任何宝石。对我来说只是工头和牧人。
cd myApp
gem install foreman heroku
似乎是一种享受。
答案 2 :(得分:0)
试试这个。在Procfile中,执行
web: node ./bin/www