I’ve followed the guide on Heroku’s website to get a node server running using foreman:
http://devcenter.heroku.com/articles/node-js
I can successfully start up the node server if I load it directly, but as soon as I use Foreman in the Procfile, it errors with the following…
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
Is there anything I can do to give Forman permission? I’ve tried sudo foreman start, but to no avail.
I am running in ruby version 1.9.3 (upgraded from version 1.8.7 installed on lion by default).
UPDATE
Running sudo foreman start after @user658619 installing heruko and foreman from ruby gems, we get…
/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>'
My environment…
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/
Basically to get it working I had unfortunatley mucked up my installations by having a mix of rubies and gems some of which required SUDO, some that didn’t.
Fortunately the good people of the internet have solved this problem for you with a tool called RVM
http://beginrescueend.com/
First download RVM
You’ll want to open a new terminal window after doing this.
Clean up. If you have weirdly installed gems you’ll want to remove them. Go to your root directory and sudo get rid of them. You can see all of them with the
gem listcommandInstall a ruby. You should do this in the subdirectory of your application. I chose 1.9.3
Add any gems you need. For me that was just foreman and heroku.
Seemed to work a treat.