hi everyone, being new to ROR, i am facing some problem with
deployment.
i don't know but going through various books and online tutorials, i
am feeling that deploying ROR application is not that easy.
basically i use shared hosting where i get only a FTP, SMTP access.
This time i managed SSH access also. but restarting apache server or
modifying configuration files( for example httpd.conf) is not possible
for me. i think ROR application deployment is not that easy as copy
pasting the application folder. isn't it be easy if the configuration
was project level rather than server level. in php or asp.net i just
need to copy the files without changing server behavior.
i want to ask you guys, is there something i am missing? is there an
easy solution for me or i have to go through it if i want to use full
features of ROR ( for example : plugins).
my host does support ROR, i just didn’t know that i have to enable it from control panel to let it know about my application. i have shell access, but i don’t have a control panel, as i am using shared package from a local distributor, may be he has the control panel access, i will ask him. my host also has FastCGI but it uses Apache server. ok lets see what can i do.
Dreamhost has a wiki that covers deployment of Rails apps. It’s not easy… there are lots of steps. Rails on Dreamhost is very possible and does work well for my small apps but it’s not as easy as deploying a Rails app to a machine under your own control.
I have two rails projects on dreamhost (nothing fancy or worth bragging about) and they work… a little slow but they work.
Getting everything started took a lot of learning. I estimated over 50 hours of time the first time through. I don’t have a programming background and everything had to be read through several times. I even used the wrong user login through ssh and the dreamhost support guy had to fix the permissions once.
That said my second project was up and running in about 45 minutes, not including a few minutes to make a database and delete the old stuff that was on the domain.
My super simple instructions (meaning complicated unless you understand a bunch of other stuff):
create subdirectory or clean out an existing domain (rails likes to run at the root, it is easier this way)
make a database through the panel (this is several steps in reality)
ssh in as USERNAME
Create an empty app on their server with “rails DOMAIN NAME” in theory this gets some of the configuration stuff to match up with the way their servers are running
Next you move files up and edit a few things (I use Fetch FTP and can edit text files using Textmate with it) Changed the database configuration
changed environment.rb to production
FTP up everything in “app”
FTP up “vendor” if you have anything there
FTP up “public/images” and “stylesheets” delete the standard index.html page in there.
FTP up “db/migrate”
FTP up “lib”
edit the .htaccess .cgi to point to .fcgi
– At this point all your files are up on the server (unless I forgot something)
run rake db:migrate to make your database
change the home directory for the site to “public” in the panel
From what I can remember this is fairly complete. I would welcome additions or corrections. The instructions to check out the DH wiki is a very good idea.