Setting up Ruby on Rails with GoDaddy

Posted by:

Back when I first got (my original domain name), my intention was to utilize a technology known as Ruby on Rails. Over the next few months, due to situations out of my control, I realized I was not going to be able to use the site for my original purposes. Eventually, I decided to record my online dating experiences and that is how this site reached its current state.

I was looking through some old documents recently and found steps I had created for myself in getting everything to work with GoDaddy (something that I found rather difficult). While this is way off-topic from my normal dating posts, I thought it might be helpful to provide the information here for anyone else struggling with the GoDaddy/Ruby on Rails combination.

One last thing before I get into the steps: I have no clue whether or not these steps will work any longer. It’s been about a over year since I wrote this and thing may have changed greatly then. Hopefully, the process has been more streamlined and these steps are no longer needed.

Ruby on Rails with GoDaddy

  1. On the Hosting Manager Control Panel, choose CGI Admin
  2. Create a Rails App directory. Leave this window open.
  3. On the Hosting Manager Control Panel, MySQL and select create a new database. Remember: the user name you enter will be the name of the created database.
    NOTE: I’d suggest performing your database creation early on in the process. I ended up waiting on my database to exit a pending status for some time. While waiting wasn’t horrible, I was anxious to continue working.
  4. Download FileZilla. This is optional but the FTP steps listed here are using FileZilla.
  5. Connect to your site with FileZilla and copy all files located in your rails app directory. I skipped the log and tmp directory and just created these directories manually since I didn’t want to upload their contents.
  6. Go back to the CGI Admin window and create a symbolic link:
    • In the second box click Show Rails Apps
    • Select the rails app and enter a link name, such as “church” or “blog” (without the quotes). You will now be able to use website/link to access the pages.
      NOTE: You cannot have a symbolic link with the same name as a directory. This caused me problems because I wanted my symbolic link to match the name of my application. What I did to get around this was I renamed my actual rails app directory and then created my symbolic link with that name. In other words, I changed the app directory from x to y and then created a symbolic link of x. This was a personal preference and not required by any means.
  7. If you don’t have a text editor that can do Unix line returns (or aren’t sure if you do) take the steps below. You may want to follow these anyway if you are not using a Rails IDE.
    • Download and install RadRails
    • Open RadRails and on the navigation pane (on the left) right-click and select New > Rails Project.
    • Enter the name of the project (the same as the app)
    • Uncheck “use default location” and browse to your application folder. For example, I entered
    • Uncheck the Generate Skeleton option and the Create WEBrick server option (assuming you already have a rails project to deploy, these options are unnecessary).
    • Click Finish
    • On the toolbar, select Window -> Preferences.
    • Expand the general tree and then select the Workspace node.
    • Change the new text file line delimiter from Default to Unix and click OK.
  8. Open the dispatch.cgi with your UNIX line-ending-friendly text editor and replace the first line with #!/usr/local/bin/ruby
    NOTE: On the GoDaddy help page they say to replace this line with #!/usr/local/bin/ruby/ (trailing slash). When I tried this, my application would fail to load (this is as of 8/8/06) so I removed the trailing slash and things worked fine. Some experimentation may be required.
  9. Follow the previous step with the dispatch.fcgi and the dispatch.rb files. I’ve not found anything that states this is necessary with the dispatch.rb but I’m updating it just in case.
    NOTE: Editing files requires Unix line returns which is why RadRails was suggested. If you use an editor that uses Windows line returns you will get an error something like:
    The application failing to start”.
  10. Upload the updated dispatch.cgi, dispatch.fcgi and dispatch.rb to the rails application public directory.
  11. Right click on each of these files and choose file attributes. Be sure the numeric value for each is 755.
  12. Go back to the MySQL option in the Hosting Manager control panel. Click the edit button and write down the name of your SQL server. It will be something like
  13. Edit your app_name/config/database.yml to contain the following:
    adapter: mysql
    host: mysql???
    port: 3306
    database: dbname
    username: user
    password: pass
    Be sure to upload this file once changed.
  14. At this point, you should be able to test your rails application by browsing to (or whatever, depending on your routes). You can also browse to if not using a symbolic link. While this will likely fail due to missing data the type of error you get can give you an idea of if you’re almost there. If you get an error about not being able to start the rails application then you have problems. If you get a general Rails Application error (the 500.html I think) or no error at all, you’re looking good.
  15. At a command line, run: mysqldump development_db > textfile.txt. This will place all data from your development environment into a text file.
  16. Under the Hosting Manager Control Panel, choose MySQL and then OpenManager for your database and log in.
    NOTE:For the life of me, I could not get logged in under FireFox. Perhaps this is some restrictive setting I’ve accidentally set – I’ve not yet been able to determine the cause. I switched to IE and was able to log in – just something to keep in mind if you’re running FireFox.
  17. Click databases and then on the next screen click your database.
  18. Click on the SQL link and then copy and paste your exported SQL into the web form. I had a very large amount of data (I was importing the King James Bible) and found I needed to break my SQL scripts into about 6 runs to get everything in. Depending on the size of your data one run may be all that is require. I was doing around 5,000 inserts at a time so it can handle a good-sized load (but be patient). I tried doing all my data in one shot but the page timed-out.
  19. Once your data has been imported try out your site again ( I was very pleased with what I saw: excluding images I was storing in blobs which I did not import, all the pages appear as expected.

Gotchas I ran into:

Starting Fresh
To really get to a point where I could get all this to work, I needed to create a new, basically empty, rails application (just ran rails testapp). The problem I was running in to was I kept getting distracted by little things related to my development application not, in 20/20 hindsight, issues related to setting up the rails app on GoDaddy.

I was never able to get this to work. Whenever switching to FastCGI (as described here), my rails app stops working all together. The page would try to load for a minute or two then just stop. That said, I’ve read of others having success.

Public Images
I had some images in my public directory locally (development) and had coded these images into my layouts with just plain HTML. This caused problems when I moved to GoDaddy because the web server in this case is running one level above my rails_app folder so the src for the images was incorrect. The most correct thing to correct this (I think) is to use the rails image_tag helper. However, another way around this is to create a images directory on your GoDaddy root and place the images in there (giving public read rights to the directory).

Web Page Performance
Now, as mentioned above, I had never gotten FastCGI to work. That said, I was satisfied with the web site performance without it…but only due to my needs. My rails pages were loading in about a second in a half. That’s way slower than static pages but for my purposes (personal web site, testing of church web site, other non-critical things) it was acceptable. If you want to do anything serious, you would either need to make sure FastCGI is working or select someone more dedicated to Ruby on Rails.

Stylesheets, Images, Javascripts failing to be found
While fooling around with my .htaccess file in attempts to get FastCGI working, my pages stopped applying their stylesheets. I’m not sure how I broke it, but there is a line in the .htaccess file (around line 28) that needs to be inserted if using a symbolic link. Add this line if you are having problems:
RewriteBase /symbolic_link
This is actually documented in the comments of the .htaccess file.

Overall Thoughts
There were many frustrating points and some of the documentation leaves much to be desired. GoDaddy’s help documentation does address several of the issues. It’s just that other help documentation contains step-by-step instructions whereas the Rails documentation is more of a generalized “if you have this problem do this”. I was satisfied with the performance but have heard that this can be dependent on your shared-server load so maybe I was just really lucky. I’ve read several “horror stories” of people trying to set-up Rails on GoDaddy where they are now moving to either TextDrive or Dreamhost. Some issues like not being able to route the root web page to a controller, will make GoDaddy a poor option for the pure Ruby on Rails developer. If you’re looking for something to fool around with using Ruby on Rails with options for changing to different technologies in the future, GoDaddy will work fine. However, if you’re looking for a full-blown Rails solution with no plans to use anything but Rails, you’ll want to look into another option (or wait for GoDaddy’s Rails implementation to mature some if you are the very, very patient type of person).

Finally, as I mentioned in the beginning of this article, it has been a very long time since I’ve worked through these steps. If something is factually incorrect or just not clear, please leave a comment!
Howto – Get GoDaddy Rollin’ on Rails
GoDaddy Troubleshooting Guide (Ruby on Rails)

Update May 2010: A quick note that I’ve moved away from GoDaddy to HostGator so I won’t be able to verify anything in this post going forward. I am very happy with my move and if you’re interested in the differences see this write-up on why I moved to HostGator.



About the Author:

Brad initially struggled with online dating but over time became quite successful using it. He met his wife using online dating and has been giving advice and helping people improve their results since 2007. He has written a Free Online Dating Guide to help others find success with online dating. You can learn more about his personal experience using online dating and running this website here.


  1. Edgard Castro  May 27, 2008

    Where did you got InstantRails 2.1?

  2. Brad  May 30, 2008


    If you are referring to the directory named C:\InstantRails-2.1a-win, that should have read C:\InstantRails-1.2a-win. I don’t think 2.1 is available at this time and when I went through this installation process I know I was using an older version.

  3. Bill Screen  July 13, 2008

    Nice work Brad!

    For all those who (like me) started w/Rails 2.0 and need to use Rail version 1.1.2 for hosting on GoDaddy, here’s a URL to a quick reference guide I found use full for development:


  4. Bill Screen  July 13, 2008

    Correction: Rails version 1.1.6

  5. Bill Screen  July 20, 2008

    Hello all,

    I know how very challenging it can be to host a ROR application of GoDaddy. The good news is that after 10 days of blood, sweat and tears, I finally got it to work!!!

    First, let me start by saying that I’m somewhat of a newbie to Rails. However, I’ve been programming in Java and/or C# for the last 10+ years so I’ve been around the block a couple times when it comes to this stuff. Secondly, this was undoubtedly one of the most challenging development tasks I’ve undertaken this year, so please don’t feel bad if you didn’t get it to work the first 10 attempts because it took me waaaaay more than that!. Well, with that said, I’m sure you’re eager to get to the how-to so let’s do it.

    Right now, I’d love to write a few paragraphs on how GoDaddy’s Ruby on Rails support and documentation is abominal, but that would only be preaching to the choir… Instead, let’s make some lemonade 🙂

    One more thing, please forgive and typing/spelling errors, I’m writing this in Notepad.

    My Setup
    – Linux Deluxe Plan
    – Windows Vista
    – Ruby 1.8.5-22 Final (
    – Gem 0.9.2
    – Rails 1.1.6 (I know you’re looking for 2.0 bare w/me)
    – FileZilla (
    – Subversion 1.4.5 (

    Tip – On Vista and XP, if you uninstall a version of Ruby, restart your computer before reinstalling another version of Ruby, otherwise the Environment Variables won’t get set properly.

    Installing Rails
    Ok, here is where I was REALLY confused early on, mostly because I didn’t understand terminology (i.e. what is a RubyGem, what does freeezing a Gem do). I was also really confused by GoDaddy’s documentation. In some places, they claim to support Rails 1.1.2, in others it’s 1.1.6. Anyway, to correctly install Rails for version 1.1.6:

    1. Run the Ruby185-22.exe installer.
    2. Open a command prompt and type: gem install rails –version 1.1.6

    That’s it. [DO NOT download RubyGems 1.2.0 (or any other version) and then run “ruby setup.rb”!!!! Same goes for any other version of Rails, don’t do it.]

    To ensure you’ve setup everything correctly, let’s check the ROR component’s versions:

    C:\Development\Projects\Ruby>ruby -v
    ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]

    C:\Development\Projects\Ruby>gem -v

    C:\Development\Projects\Ruby>rails -v
    Rails 1.1.6

    Installing Subversion
    Go ahead and install Subversion if you already haven’t. It’s a version control system like CVS or Visual Source Safe.

    Creating a test project
    — Let’s keep it simple and create helloworld

    C:\Development\Projects\Ruby>rails helloworld

    create app/controllers
    create app/helpers

    — Change to the helloworld directory

    C:\Development\Projects\Ruby>cd helloworld

    — Create a controller and some basic actions

    C:\Development\Projects\Ruby\helloworld>ruby script\generate controller Say hello

    ./script/../config/boot.rb:28:Warning: require_gem is obsolete. Use gem instead
    exists app/controllers/
    exists app/helpers/
    create app/views/say
    exists test/functional/
    create app/controllers/say_controller.rb
    create test/functional/say_controller_test.rb
    create app/helpers/say_helper.rb
    create app/views/say/hello.rhtml

    — Ok, let see if it works

    C:\Development\Projects\Ruby\helloworld>ruby script/server

    ./script/../config/boot.rb:28:Warning: require_gem is obsolete. Use gem instead
    => Booting WEBrick…
    => Rails application started on
    => Ctrl-C to shutdown server; call with –help for options
    [2008-07-18 22:54:52] INFO WEBrick 1.3.1
    [2008-07-18 22:54:52] INFO ruby 1.8.5 (2006-12-25) [i386-mswin32]
    [2008-07-18 22:54:52] INFO WEBrick::HTTPServer#start: pid=3680 port=3000 – – [18/Jul/2008:22:55:11 Eastern Daylight Time] “GET / HTTP/1.1” 200

    — Open a browser to: http://localhost:3000/Say/hello


    Find me in app/views/say/hello.rhtml

    Preparing for launch to GoDaddy
    Ok, just to quickly recap, all we’ve done so far is to install ROR, Subversion and create a very simple Rails app – nothing special. Everything is working locally, so now it’s time to prepare for FTPing to GoDaddy. This is another area where I was REALLY confused initially. So before we go any further I’m going to outline and explain what we’re going to do and why.

    1. Freeze the application. When you “freeze” a Rails app, your application will always use that version of Rails and the associated Ruby Gems, regardless of what version is installed on the GoDaddy server. In essence, even though GoDaddy only supports version 1.1.6, by ‘freezing’ your application, you literally bundle your entire local environment into your application. So theoretically, you can run version 2.x.x if you ‘freeze’ your application before deploying. Note, I have not tried this as of yet, but I do have a ‘frozen’ version of Rails 1.2.6 running on GoDaddy. So if 1.2.6 runs, then it’s very likely 2.x.x will run as well as long as it’s frozen.

    2. Make a copy of the helloworld application and rename it hellworld_godaddy.
    This is a best practice for me because it allows me to have a working version of my app running on Vista and a ‘ready to promote’ version for the Linux server.

    3. Configure some files in the /public and /config directory for use on GoDaddy.

    EASY as 1-2-3…..

    Ok, go ahead and stop the WEBrick server by typing Ctrl C

    First, let’s Freeze our application to version 1.1.6
    C:\Development\Projects\Ruby\helloworld>rake rails:freeze:edge TAG=rel_1-1-6
    [**** Note: this may take 30+ seconds ****]

    Second, copy of the helloworld application and rename it hellworld_godaddy

    Finally, we need to edit some files in our hellworld_godaddy directory.

    –> /config/environment.rb
    Edit the top section of /config/environment.rb to look like this:

    ENV[‘RAILS_ENV’] ||= ‘development’

    # Specifies gem version of Rails to use when vendor/rails is not present
    ENV[‘GEM_HOME’] = ‘/usr/local/lib/ruby/gems-dev/1.8’
    RAILS_GEM_VERSION = ‘1.1.6’

    –> /public/dispatch.rb, dispatch.cgi, and dispatch.fcgi
    Edit the first line in all of the dispatch files to look like this:


    –> /public/.htaccess

    Ok, a brief pause is needed here to explain some things. .htaccess files are generally used for many reasons, but it’s common in shared hosting for these files to be used to redirect to a subdirectory preventing users from knowing the real location of your application on a server. GoDaddy uses a ‘Symbolic Link name’ which is really just an ‘alias’. So in our case we’re going to create a subdirectory called ‘helloworld_godaddy’ and a Symbolic Link name of ‘helloworld’.
    So all this means is that when a user goes to, they’re actually referencing the data and files from the helloworld_godaddy subdirectory. The most important thing to know about this file is that it should contain a ‘RewriteBase’ directive which explicitly sets the base URL for per-directory rewrites. So in our case we want the base URL to be rewritten as ‘helloworld’. Another useful tip is to use the .fcgi (FastCGI) protocol; this is done by simply changing the .cgi extensions to .fcgi.

    Edit the middle section of the .fcgi file to look like this:

    RewriteBase /helloworld
    RewriteRule ^$ index.html [QSA]

    RewriteRule ^([^.]+)$ $1.html [QSA]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

    Ok, now we’re almost there! The last part is the easiest 🙂

    Lock and Load

    Log into your GoDaddy account and open up the CGI Admin tool.

    In the ‘Directory name:’ textbox, type my_rails_apps. GoDaddy will automatically create an .htaccess file in the new directory. Open the file and change
    dispatch.cgi to dispatch.fcgi. [Note: This step is not necessary]

    Open up FileZilla and connect to your GoDaddy root directory. Double click the my_rails_apps directory.

    In the Filezilla toolbar, select Edit –> Settings –> FileTypes and change the Default transfer type to ASCII.

    Select your helloworld_godaddy directory, right click and select upload. *** IMPORTANT STEP ***

    [Note: this process will take about 2-3 minutes]

    (If you’re new to the GoDaddy admin tool, you’ll need to create an FTP user by going to Hosting Control Center –> Settings –> Manage FTP settings)
    (To figure out your FTP URL, username and password, go to Hosting Control Center –> Content –> FTP Client –> Click Disconnect, then Connect)
    (Make sure you turn on your error logs, go to Hosting Control Center –> Settings –> Error Logs –> click the ‘Update’ button)

    Ok, now go back to the CGI Admin tool and select the ‘Ruby’ tag or refresh the page.

    In the Create Rails Symbolic Link section, click the Show Rails ‘Applications link’.

    If all went well, you should see ‘my_rails_apps/helloworld_godaddy’ in the ‘Choose a rails app:’ drop down box.

    Enter a link name of ‘hellworld’ (no quotes), then click the ‘Create’ button.

    [Link created: helloworld is a symbolic link to my_rails_apps/helloworld_godaddy]

    LIFT OFF!!
    The very last step is setting permissions.

    Reconnect to your root directory via Filezilla and open up the /my_rails_apps/helloworld_godaddy/public directory.

    Select the dispatch.cgi and dispatch.fcgi file, right click and select ‘file attributes’. Change the numeric value 644 to 755 and click the ‘Ok’ button.

    — Open a browser to: [ALL LOWERCASE]


    Find me in app/views/say/hello.rhtml


    CONGRATULATIONS! You’ve done it.

    For reference, I’ve uploaded a copy of the helloworld_godaddy directory to:

    In case these instructions don’t work for you, here are some instructions that helped me along my journey:

    Hope this helps.

    Bill Screen

  6. Matteo Tomasini  November 28, 2008

    Thank to Brad and Bill Screen for the help you give me installing my ruby on rails application on
    After following your instruction and installing 1.1.6 rails application I tried installing also 2.*applications but it wasn’t so easy. There was an error for a gem method not recognized on godaddy server and I discovered that the problem can be resolved replacing gem calls with the oldest require_gem call. After replacing all these method in vendor/rails files I successfully installed my rails 2.0.5 application on GoDaddy.
    I wrote a page with all the steps at
    I hope it will be useful for someone…
    Thanks again

  7. Daniel  January 26, 2009

    Why would you do all this, Matteo? Are there no other cheap shared Rails hosts that just work with the latest version? Or is this your person Everest?

    Just reading your instructions puts me to sleep, as I just want to develop software, and NOT fight with my new GoDaddy account.

  8. Daniel  January 26, 2009

    wow, sorry about that post, it should’ve read

    Thanks for this post, Brad, and your helpful comment, Matteo. Why would you do all this? Are there no other cheap shared Rails hosts that just work with the latest version? Or is this your personal Everest?

    Just reading your instructions puts me to sleep, as I just want to develop software, and NOT fight with GoDaddy hosting…

    Thanks again in case I do try to do it this way…

  9. Brad  January 26, 2009

    Hey Daniel. To be honest, I guess I enjoy trying to figure things like this out. I wouldn’t call it an Everest but that’s along the right lines. Funny thing is, I actually never ended up using RoR in any real manner with my GoDaddy account.

    As for cheap shared Rails solutions, I’m sure there are plenty out there. I remember reading a lengthy list on the official RoR site. If there’s any confusion let me just say that this post shouldn’t be seen as an endorsement for using RoR on GoDaddy, just a helper for those who find themselves in that position.

  10. Daniel  January 26, 2009

    Thanks Brad. Yeah, I would, on the other hand, endorse ASP.NET on Godaddy, as it’s brilliantly simple. But this looks hellish. I just wanted to deploy some simple code!

  11. johny  January 28, 2009

    Hi bill I read your post.thank you for that .It give a great idea to does who doesn’t have any choice on deploying their RoR application like me.I have a suggestion can you include on how to connect to mysql database.Any can you explain this line “TAG=rel_1-1-6”.thank you in advance..

  12. Bob  January 29, 2009


    I’ve nver seen your site before today. I was googling information about whether godaddy supports rails and this link was one of the first to popup.

    Thanks for the information. This is exactly what I needed.

  13. johny  January 30, 2009

    I follow what bill posted.I got a running RoR on godaddy without a database>My problem when I try to add a simple query on the database my page only display a blank page.I really don’t what happening.

    deluxe hosting linux
    development machine
    win xp
    rails 1.1.6
    ruby 1.8.6
    gem 0.9.4
    mysql 5

    adapter: mysql
    database: secondtry_db
    port: 3306
    username: secondtry_db
    password: ********

    adapter: mysql
    database: secondtry_db
    port: 3306
    username: secondtry_db
    password: *******
    @users = User.find(:all)
    Welcome to User Registration


    When I remove the query on new.rhtml
    I view the simple message ” Welcome to User Registration and the Time”

    Migrate database
    def self.up
    create_table :users do |t|
    t.column :lastname, :string
    t.column :firstname, :string
    Thank you in advance..

  14. johny  January 30, 2009

    I got this error on Error Log
    /web/cgi-bin/php5: Symbol `client_errors’ has different size in shared object, consider re-linking

  15. johny  February 2, 2009

    After for one week of try and error .I finally run a very simple RoR application on godaddy.Thank guyz for this post..

  16. Dale  March 16, 2009

    @johny – what did you do to solve the Symbol `client_errors’ error?

  17. r  April 9, 2009

    I too would like to know how to solve the “Symbol `client_errors’ has different size in shared object, consider re-linking” error.


  18. johny  June 29, 2009


    I just follow Bill post

  19. yini  July 27, 2009

    Hi, thanks for this page. I learn a lot form you
    However, I still face to few problems.
    my location rails version is 2.3.2, once I “rails app” I didn’t fine any dispatch.cgi in my locate app. folder. as I follow your introducation. I have not idea to do with dispatch.cgi since I don’t have them in hand. Do you know how can I work on this?
    so far I have setupped mysql database and rails directory, I have seen the welcome page of rails on my site but I stop in here, there is nothing to do more with dispatch.cgi
    any suggestion?

  20. Irma Whelan  September 23, 2009

    Great info. I think the main problem for most people is budgeting. It’s always about what you can afford.


Add a Comment