Re: GoDaddy deployment

datakix
Sun, 20 Jul 2008 00:36:37 -0000

Just wanted to make two quick corrections:

1.

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

should be

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


2. Any occurrence of ''hellworld'' should be
''helloworld''



On Jul 19, 8:09 pm, datakix
<data...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:
> 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 (http://rubyforge.org/frs/?group_id=167)
> - Gem 0.9.2
> - Rails 1.1.6 (I know you''re looking for 2.0 bare w/me)
> - FileZilla 3.0.11.1 (filezilla-project.org)
> - Subversion 1.4.5 (http://subversion.tigris.org/)
>
> 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
> 0.9.2
>
> 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
>  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 onhttp://0.0.0.0:3000
> => 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
> 127.0.0.1 - - [18/Jul/2008:22:55:11 Eastern Daylight Time] "GET /
HTTP/
> 1.1" 200
> 7552
>
> -- Open a browser to:http://localhost:3000/Say/hello
>
> 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:
>
> #!/usr/local/bin/ruby
>
> --> /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
tohttp://www.mywebsite.com/hellworld,
> 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/ ...
>
> read more »

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe@googlegroups.com