Deploy Ubuntu 14.04 Trusty Tahr Discussion
Hi,
Thanks for the tutorial. I'm having trouble uncommenting the /etc/nginx/nginx.conf file. It says I have read only permission and cannot edit it, even though I followed the previous steps of setting the permissions. How do I fix this? Thanks again.
Make sure you open up the file using sudo before. So either "sudo vim /etc/nginx/nginx.conf" or "sudo nano /etc/nginx/nginx.conf"
Hi Chris
When I ran the commend `cap install STAGES=production`, I came across the following issue.
```
cap aborted!
ArgumentError: invalid byte sequence in US-ASCII
(See full trace by running task with --trace)
cap aborted!
NoMethodError: undefined method `deploying?' for #<capistrano::application:0x007fe88153d1c8>
```
I ran this commend on my local machine, not server end.
Sounds like you might have a foreign character somewhere in there that isn't US-ASCII. Are you using UTF8 characters anywhere?
When I use 'cap install STAGES=production' i get error kernel_require.rb:55:in `require': cannot load such file -- capistrano/cli (LoadError)
Any ideas to fix it?
Good article, I would like to see how a simple setup like this could be provisioned with Chef. Future article maybe?
Thanks Ben, definitely plan on doing that. Chef scripts are super duper awesome and it's incredibly useful. Hopefully I'll be able to do that soon!
Great Tutorial,
but I am getting:
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing on ip_address: Authentication failed for user user@ip_address
/home/user/.rvm/gems/ruby-2.1.2@myapp/gems/net-ssh-2.9.1/lib/net/ssh.rb:219:in `start'
Any ideas how to get authentication working?
user@ip_address
It looks like you didn't change user or ip_address to the actual user account or IP number. Change that and it should work.
Hi chris, what's the difference with PUMA ? best performance ?
Depends on what you want to do, but generally Passenger is quite good on all fronts. You can read some more about some performance testing but no matter what, it isn't going to be definitive that one is always better than another. https://blog.engineyard.com...
Thanks for awesome guide! just a heads up, in Capfile part you didn't change Ruby version. I chose 2.1.2 but in Capfile it's still 2.0.0-p451.
I changed it to 2.1.2 and all works now,
I have setup nginx + passenger on EC2 instance ubuntu 14.04. I successfully get first page "Welcome aboard" but when I try to get some controller's action I get "page not found 404" error.
Configuration in sites_enabled/default is as given below
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name localhost;
passenger_enabled on;
rails_env production;
location / {
root /home/ubuntu/myapp/public;
}
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
how can I run rake on server? I tried to do it via ssh by root and deploy. they both give me following error:
ActiveRecord::NoDatabaseError: FATAL: role "deploy" does not exist
should I run rake via Capistrano? if so, how?
It would be awesome if you could also include how to set up a background job processor like Sidekiq or Resque as a service in ubuntu.
Absolutely! I'll probably plan on covering this in a screencast or a separate tutorial.
I'm having this problem
$ cap production deploy
DEBUG[e90accc1] Running /usr/bin/env [ -d ~/.rvm ] on xxx.xx.xxx.xxx
DEBUG[e90accc1] Command: [ -d ~/.rvm ]
DEBUG[f6a43b18] Running /usr/bin/env [ -d ~/.rvm ] on domain.com
DEBUG[f6a43b18] Command: [ -d ~/.rvm ]
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing on host domain.com: Connection refused - connect(2)
my config/deploy/production.rb is:
role :app, %w{domain.com}
role :web, %w{domain.com}
set :stage, :production
server 'xxx.xx.xxx.xxx', user: 'user_name', roles: %w{web app}
my /etc/nginx/sites-enabled/default is:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name domain.com;
passenger_enabled on;
rails_env production;
root /home/user_name/apps/app_name/current/public;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {OA
root html;
}
}
Any advise?
Ok, it was due to my port, which wasn't 22. Anyway, right now I'm having this problem :
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing on host domain.com: Authentication failed for user @domain.com
Any suggestion? I guess it is related with ssh keys?
Hi guys, great tutorial. :)
I did it exactly the same way like described here prior to reading it and wrote a blog on how to install rbenv globally for all users. Check it out here: http://toschas.com/rbenv-se... .
{You'll want to open up /etc/nginx/nginx.conf in your favorite editor} where can find nginx.conf
It's on the server in the /etc/nginx folder. You can type nano /etc/nginx/nginx.conf
or use vim
instead to edit it through your SSH connection.
Nice tutorial, very well explained! @excid3:disqus , could I translate to pt-BR (Brazilian portuguese), to help my Brazilian friends? Thanks a lot.
Thanks for the tutorial! I get most of the way through, but when i try running
cap production deploy
I get the 'authentication failed for user deploy@1.1.1.1' message.
I'm able to SSH into my remote server without entering the deploy user's password, so I'm not really sure where else to tweak. My stackoverflow searching hasn't really turned up any easy solutions. I'd appreciate any thoughts that worked for others.
I'm trying to add my ssh key but when I try to log in into the dropplet my password is asked
sh-3.2# ssh-copy-id deploy@162.243.xxx.xxx
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system.
sh-3.2# ssh deploy@162.243.xxx.xxx
deploy@162.243.xxx.xxx's password:
What should I do?
good job Chris, any plans to add sidekiq integration to this post?
I'll probably do a screencast on Sidekiq (and other background workers) in the future. For now, you might want to check out this post http://chrisdyer.info/2013/...
I get lost at the nginx.conf part. After editing the file and do a restart I get a [fail] message which I suspect ain't a good thing. When I do which ruby I get /home/deploy/.rvm/rubies/ruby-1.9.3-p547/bin/ruby. (yes i am doing 1.9.3)
Should I have both
passenger_ruby /usr/bin/ruby;
and
passenger_ruby /home/deploy/.rvm/rubies/ruby-1.9.3-p547/bin/ruby
in the conf ?