Reputation: 19908
Is is possible to install Ruby on Rails alongside WampServer (and keep WampServer's Apache/MySQL installs)?
Upvotes: 26
Views: 27423
Reputation: 19908
I installed Ruby on Rails alongside WampServer. Here is how to do it:
Replace C:\wamp\
in the following text by your own WampServer's install repository.
Installing Ruby:
C:\wamp\ruby\
.Add Ruby's bin repository in your PATH environment variable:
;C:\wamp\ruby\bin
to the Path variable.Installing DevKit:
Download DevKit:
c:\wamp\ruby\DevKit
.cd /d c:\wamp\ruby\DevKit
.ruby dk.rb init
.
- c:\wamp\ruby
to the end of config.yml
.ruby dk.rb install
Installing Rails and the Mongrel server:
Open the command line and type:
gem install rails
Create your first Rails application by opening the command line from C:\wamp\www\rails\
and typing:
rails hello
Install the Mongrel server and Windows Mongrel service, making sure to run the command line as administrator:
gem install mongrel and
gem install mongrel_service
Install a Windows service for your Rails application:
mongrel_rails service::install -N ruby-hello -c c:\wamp\www\rails\hello -p 3001 -e development
Start your Mongrel service:
net start ruby-hello
You can now access your Rails application at http://localhost:3001/
.
Integrating with Apache
Enable mod_proxy in httpd.conf
Open httpd.conf (c:\wamp\bin\apache\Apache2.x.x\conf\httpd.conf) and uncomment the following line:
LoadModule proxy_module modules/mod_proxy.so
Forward your traffic to your Mongrel server. Add the following text to your httpd.conf (or extra/httpd-vhosts.conf if it's included in your httpd.conf):
<VirtualHost *:80>
ServerName hello.com
ServerAlias *.hello.com
ProxyPass / http://localhost:3001/
ProxyPassReverse / http://localhost:3001
</VirtualHost>
Add hello.com to your hosts file. Open c:\windows\system32\drivers\etc\hosts
in Notepad and add the following line:
127.0.0.1 www.hello.com hello.com
You can now go to http://www.hello.com and it should load your Rails application.
References:
Upvotes: 28
Reputation: 56351
USE standalone Ruby Server installations: a) http://railsinstaller.org/en b) http://www.helicontech.com/zoo/install.html c) https://bitnami.com/stack/ruby
OR
1) Install WAMP (or etc)
2) Install Ruby
3) open ...wamp\bin\apache\apacheXXXX\conf\httpd.conf, then search & replace
Options Indexes FollowSymLinks
with
Options Indexes FollowSymLinks ExecCGI
(or Options Indexes FollowSymLinks Includes ExecCGI
)
p.s. also, Find & ensure that LoadModule cgi_module is NOT commented.
4) search & replace
#AddHandler cgi-script .cgi
with (...removing # )
AddHandler cgi-script .cgi
AddHandler cgi-script .rb
5) Find the line:
DirectoryIndex index.php index.php3 index.html index.htm
and add in the end of them: index.cgi index.rb
Now, Restart Apache.
6) create a sample.rb (in /www root), with such content:
#!C:\Ruby200\bin\ruby\ruby.exe
puts "Content-type: text/html" #in newer version, might be puts("....")
puts ""
puts "Test Pageeeeeeeee."
p.s. NOTE: (a) Change C:|Ruby.. path to your RUBY installation path correctly. (b) To avoid problems, dont install RUBY in a path, wherein any "folder name" contains a space. (c) There should not be a space between the start of line and print(..
7) open http://localhost/sample.rb
THAT's all!!
p.s.note, in come cases, while using .htaccess [inside .rb directory], you might need to insert these lines in .htaccess:
Options +ExecCGI
AddHandler cgi-script .rb
Upvotes: 3
Reputation: 25377
This is assuming you're trying to set up a development environment, because it doesn't make much sense to use Windows and/or WAMP for a production server.
You can instally Ruby rather easily on Windows using the Ruby installer. There's also the one-click installer which includes a number of libraries (though you can install these yourself with rubygems later).
You are correct in that you install Rails (and dependencies) as a gem.
Now, as for Apache... I'm going to suggest that you keep your WAMP installation and simply don't use it for Ruby/Rails. Ruby has a built-in web server called WEBrick, and there's another light-weight server called Mongrel (available as a gem). These can be run simultaneously with Apache, with Apache serving PHP content and Mongrel/WEBrick serving Rails. They'll run on different ports (Apache on 80, Mongrel/WEBrick on 3000 by default), so there shouldn't be any conflicts.
There are several advantages with this approach:
MySQL is separate from Apache, so your Rails app will be able to access MySQL databases regardless of which server is serving its content. Naturally, you'll have to run at least the MySQL version of WAMP in order for it to work.
Upvotes: 5