You need to add a beginning slash to that command:
cd /var/log/nginx/ or just view it by doing
sudo less /var/log/nginx/error.log
That file will have your Nginx and passenger logs, but your Rails app will contain your Rails errors. Use
less /home/deploy/MYAPP/current/log/production.log to view that.
If you send me your error, I can give you some more guidance on fixing it.
It's best to use the same setup on the server if you can. Definitely make sure you're using the same version of Ruby to be on the safe side otherwise bugs can come up. I would upgrade to 2.1.2 because 2.1.1 had compile bugs with readline on Ubuntu.
That's good. Did you run the ssh-copy-id command? If so, when you ssh in it should not ask you for a password. If it does, that might be the missing piece because it isn't generally good to use passwords for ssh.
I believe your roles there at the top might be causing the problem. You don't want those to include the "deploy@" in them because it gets added automatically. Comment out those lines because the server line you have later takes care of that.
The other possibility then is your git connection isn't working properly. When you deploy, your server pulls down from git, so maybe it isn't able to connect to your git repo, but I don't think your deploy has gotten that far. I'm not quite sure. Keep double checking your configs and maybe you'll spot the error.
Hmm. I guess next steps is to verify you can ssh in by doing ssh firstname.lastname@example.org with the password you set earlier.
SocketError: getaddrinfo: Name or service not known means it cannot connect to the IP address / domain that you put in. Make sure you don't have any typos and that you specified your domain correctly.
The simplest way is to replace it with my code and change the git repo, app name, and deploy path to match your app. After that you should be pretty much done.
There should be an existing file there already because Nginx has a default web page it renders. You'd just be overriding it. Maybe a typo in the filename?
Nano works great. I personally use vim.
That's correct and you do want to do this on your local machine. Capistrano is how your local machine tells the server to deploy your code so it needs to be setup locally.
Hey Jinu, your Gemfile should be in the top folder of your Rails app. This is what defines your version of Rails and other gems that you use. You want to edit the Gemfile on your computer first (not on the server) to add Capistrano.
I believe, if you run
rbenv rehash after installing the capistrano gem, the executable should become available without having to run
bundle exec. I could be wrong, but that's also the same way that gets the
rails command available.
You should have sqlite3 installed if you followed all the steps. And to generate a Rails app with Sqlite, just skip the -d option and use
rails new myapp
I'll add a comment to the last part to make that more clear. Thanks!
Posted in SimpleCalendar 1.1 released! Discussion
Ah yes, great points! I like that as a subquery and definitely need the distinct for my example as well.
Doh! I'll get on that. My markdown parser sure didn't like that video.
Glad you got it working and you're welcome! :)
Sounds like the download got interrupted. You probably should delete the file they mention (assuming they tell you which one didn't finish) and try again.
This is fixed now in the latest versions of 2.1 and 2.0 that were released yesterday!
This is hard to talk about in the abstract, so here's an example from an app I built recently. We have a Campaign object that, depending on its type, has multiple ways to be "expired".
published? && ( (timer? && expires_at < Time.zone.now) || (quantity? && subscribers.shared.count >= quantity) )
Now in the current iteration, I've already abstracted out
published? to handle the logic for how publishing works. The other pieces of logic are dependent upon the type of Campaign.
The simplest approach is to simply dump in the logic as you see here.
The better solution is to refactor it into other methods.
published? && (timer_expired? || quantity_expired?)
timer? && expires_at < Time.zone.now
quantity? && subscribers.shared.count >= quantity
You should be able to instantly see the benefits in clarity.
Campaigns can only have their timer expired if they are a timer based campaign and the time has elapsed.
expired? encompasses a higher level definition of what being expired means. It's very clear now that an expired campaign has a few paths to their "expiration" and also allows for easy modification of individual expiration methods. You can also add new types with relative easy without adding much confusion.
Is that a better example?