On Sep 3, 2012, at 8:14 PM, Bruce Whealton wrote:

> Hello,
>      Thanks Walter for your suggestions and information.  I definitely follow 
> advice.  Here's some surprising news.  I actually got everything working 
> right inside Windows while still trying to get things to work in Linux!!!  My 
> Linux installation does not even have the mysql gem or the mysql2 gem 
> installed.  I thought for sure I had it installed earlier.
>        Some of the issues of trying to get Rails working in Linux as 
> recommended deal with my ability to do simple things like capture the output 
> of any command to a file.  This would greatly help me to answer some of your 
> questions about what is going wrong.
>        I did figure out some things about a rails app that change how I might 
> try to access a page.  For example, if I launch Webrick, and then navigate to 
> http://localhost:3000/demo/index
> I get my demo controller and index action.  It is inside an app called 
> simple_cms, or it could be in demo_app.  However, if I try to visit 
> http://localhost:3000/simple_cms/demo/index that doesn't work.  I get a 
> "Routing Error" No route matches (GET) "simple_cms/demo/index

>      So, how does Rails know which application to run if you had many apps 
> installed?  For example, I have a testing environment where I use xampp.  I 
> thought I'd install my rails app there and just use apache which is already 
> installed on my system.  And I have many websites/applications in the htdocs 
> folder.  Therefore, if I wanted to setup a simple cms based on php, I'd maybe 
> put it in htdocs/simple_cms/ and then I would know that I need to include the 
> directory simple_cms so that Apache knows how to deliver pages, with each 
> folder being self-contained.  With Rails, how would this work, I have a 
> folder where I put files, for example the htdocs folder (maybe I shouldn't 
> use that for the Rails apps to avoid confusion), my sites directory.  So, I 
> might have inside the sites directory the following:
> simple_cms
> mysecond_app
> mythird_app
> and these would all be directories under the sites directory.  How does Ruby 
> on Rails know which one to serve?

Only one Rails app can be running at a time on a single port. You can start one 
with rails s -p 3001 in one directory, and then cd into a different directory 
and use rails s, and you'll have two different Rails apps running at once on 
3000 and 3001. You'll need to put the correct port into your browser to see 
each one, and this is kind of silly (unless you're experimenting with having 
one app talk to another, as in an oath server/client setup, say) but there you 
go, that's how it works. If you have Apache running, and passenger, and you've 
configured multiple virtual hosts, then you can access them on the same port 
just by setting up some sort of name resolution on your local box. Put the 
following in /etc/hosts:

127.0.0.1 one.app.dev
127.0.0.1 two.app.dev

and as long as you have configured your vhosts to have those names in Apache, 
you will be able to access those two made-up domain names on your local 
computer without entering any port number (they'll be running in port 80 -- the 
default).

> 
>       Ok, at the risk of going off topic and discussing Linux issues, could I 
> ask that you tell me how I might issue the commands you mention, such as the 
> rails new command such that the output can be sent to a file that is easy to 
> find.  I currently use putty for Windows and haven't figured out how to 
> select content and copy it to the Windows clip board so that I could then 
> paste that to a text editor.

Try using the Web interface to this list; either the Google Groups one, or the 
original at http://ruby-forum.com/forum/rails Then you can copy and paste from 
your terminal in Linux. I have only ever tried to use virtualbox on Mac OS X, 
where there is a menu command to move the clipboard from the guest to the host 
and vice-versa. You might also look into that option.

>    My problems are with regard to where I left off in my Linux installation 
> of Ruby on Rails, I couldn't get the gem mysql or gem mysql2 to install.  
> When I type in gem list, I don't see either of those.
> I type in my linux sandbox:
> rails new demo_app -d mysql
> I get Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native 
> extension.
> Below that, an error occurred while installing mysql2 (0.3.11) and Bundler 
> cannot continue.  Make sure that 'gem install mysql2 -v '0.3.11'` succeeds 
> before bundling.  At which point, I try to do
> Sudo Gem install mysql2 and I get asked for my password and then it says the 
> command sudo gem isn't recognized.  So, I try it without sudo and it fails to 
> install.

You may need to back up quite a bit. Make sure that rubygems is installed, and 
the way you do that is with the command gem env in a terminal. If you don't get 
a nice listing of your Ruby and Rubygems environment, then start your googling. 
Don't use a package to install rubygems, use the source! 

Once you have rubygems working, then find a package for the mysql-dev package, 
which will have all the headers you need to install the mysql2 gem. You didn't 
paste the entire error message, but I'm betting you don't have the source code 
on your system that the rubygems environment needs to build that gem. There are 
two parts to it (and some other gems as well) -- the ruby part, which is 
platform-agnostic, and the native C bindings, which have to be compiled for 
your hardware. Without the source code for MySQL, you won't be able to build 
the latter part.

>     I did pick up that book that happens to be directly related to the 
> tutorial that you sent to me.
> Thanks,
> Bruce

Hope this helps, and hope you get things going and begin to understand how it 
all works.

Walter

> -----Original Message----- From: Walter Lee Davis
> Sent: Sunday, September 2, 2012 2:18 PM
> To: [email protected]
> Subject: Re: [Rails] Help getting started: Newbie: Windows and Rails
> 
> 
> On Sep 2, 2012, at 1:50 PM, Bruce Whealton wrote:
> 
>> I'll comment below.
>> 
>> On Sep 2, 2012, at 12:53 PM, Bruce Whealton wrote:
>> 
>>> Bill,
>>>       First, I really appreciate your help.  At the risk of sounding naïve, 
>>> in response to Dheeraj’s post that  “You need to add it to the gemfile and 
>>> run the bundle command.”  How do I do that?  I guess this is where I need 
>>> to be more specific about where I left off.  Ok, the tutorial that I 
>>> mentioned here: 
>>> http://blog.sudobits.com/2012/05/02/how-to-install-ruby-on-rails-in-ubuntu-12-04-lts/
>>> uses the Webrick server.  For some reason, when I started that server and 
>>> then tried to view the page using port 3000, it did not connect.
>> 
>> Were you trying to connect from within your virtualbox environment, or from 
>> the host OS? Try looking at your Webrick-hosted sites from the same OS that 
>> you launched them under -- that's the normal use-case for those sorts of 
>> self-hosted apps. It's meant to be a window into your dev site, just a 
>> quick-and-dirty hack to get you to a click-test of the app.
>>>>> 
>> Yes, I was trying from the host OS.  I do have KDE installed in Linux so I 
>> can browse to the Webrick link.
>> 
>>> Therefore, I had my VirtualBox setup with Ubuntu and using Apache2 on port 
>>> 8080, which I could get to from my host OS.  I wasn’t seeing that test app 
>>> described at the above link, until I went into the folder 
>>> http://localhost:8080/test_app/
>>>    Of course, now, for some reason, I cannot get into any of the apps that 
>>> I just installed hours ago.  I get Not Found at the test_app link that I 
>>> included just above.  I can go to the http://localhost:8080/ uri and see 
>>> some web content that was put there.  However, the test_app that worked 
>>> fine just a little while ago, is not working now.  Had it been working I 
>>> would have said that the last problem to address is creating an application 
>>> with mysql support.
>> 
>> Not sure what this all means, but I would still try to see the site from 
>> within the linux environment, if that's where it is running (that is, if it 
>> was started with `rails server` from within the folder in a terminal).
>>>>> 
>> I wonder why I cannot get an app created in RoR with support for mysql?
> 
> Please copy and paste the exact rails new … command you typed into terminal 
> when you created your test app.
> 
> There are tons of flags you can use to set up rails with various databases. 
> By default, it will use SQLite3, because that just works most places. If you 
> pass -d mysql to the new command, you will get a mysql connector. But note 
> that you don't have to do this at the beginning of your project. You can 
> create a default (SQLite) application, then transfer it to MySQL or 
> PostgreSQL or anything else that's supported, later in the project life-cycle 
> by changing a few lines of your gemfile and database.yml files.
> 
>> 
>> If you have Apache running inside virtualbox, and you can see a test site 
>> (the classic It Works! page) at :8080 from your host OS, then you need to 
>> set up passenger inside Linux, configure each virtual host where you want to 
>> run Rails, and it should just work. Passenger on Linux is a very patient and 
>> instructive installer script, so much so that I have not yet failed to get 
>> it running on a bare VPS, despite my home-school approach to Linux admin.
>>>>>> 
>> Can you expand on this?  What will Passenger do?
> 
> Passenger is one of the ways to serve Rails applications. Think of it as 
> mod_php but for Rails. It's an Apache module that understands the structure 
> of a Rails application and how to pass Web requests from Apache into Rails. 
> Learn more at http://modrails.org
> 
>> 
>>>     It is frustrating that my problem is now apparently related to my Linux 
>>> installation on my system and I cannot address the other issues of moving 
>>> on to learning RoR.
> 
> I would take the patient advice of many others on this list, and please put 
> down the Lynda tutorial. Pick up the http://railstutorial.org path instead. 
> This is a FREE course that teaches you how to go from nothing to a working, 
> tested Rails app hosted on Heroku (which is also free) and will give you the 
> leg up you need without immersing you in the minutia of installation hell 
> where you seem to be circling. You will still want to get a working local 
> install of Rails, which will include being able to browse your test site 
> (hosted out of Webrick) locally at http://localhost:3000 But that is really 
> not as hard as your combination of aged tutorial and lack of experience in 
> Linux is giving you. There are even instructions in railstutorial that will 
> show you how to get Rails installed directly under Windows, although I would 
> urge you to charge on and get it to work in your Linux environment instead.
> 
>>> 1) test_app from the tutorial: 
>>> http://blog.sudobits.com/2012/05/02/how-to-install-ruby-on-rails-in-ubuntu-12-04-lts/
>>>  **was** working fine with apache2, not with Webrick.  Unlike in that 
>>> tutorial, I couldn’t go to just http://localhost:8080 or localhost:3000, I 
>>> had to add the directory in my browsers address bar, then I think I had to 
>>> go into public.
>>> 2)  How are you installing the mysql2 gem?  Are you using Bundler?  In the 
>>> above referenced tutorial, I didn’t need mysql.  However, when I added that 
>>> to the command line:
>>> rails new simple_cms –d mysql
>>> I got the message: “An error occurred while installing mysql2 (0.3.11), and 
>>> Bundler cannot continue.  Make sure that ‘gem install mysqsl2 –v ‘0.3.11’` 
>>> succeeds before bundling.  So, I then enter
>>> gem install mysql2 –v ‘0.3.11’
>>> Then I try my install again... when asked to continue and over-write, I say 
>>> Y.  Then I get the same error.
>>> What is curious is that if I include the ` after the gem install mysql –v 
>>> ‘0.3.11’ it gives me a different prompt.
>>> 3) Is the gem specified in the Gemfile?   Were you able to rake db:migrate 
>>> or is that where you're having your problem?
>>> I don’t know what the latter means.  I can look at the Gemfile and it has 
>>> this in it:
>>> source :rubygems
>>> 
>>> gemspec
>> 
>> Your gemfile should have quite a bit more than that inside it, at least on a 
>> bare Rails app. Here's one now:
>> 
>> source 'https://rubygems.org'
>> 
>> gem 'rails', '3.2.7'
>> 
>> # Bundle edge Rails instead:
>> # gem 'rails', :git => 'git://github.com/rails/rails.git'
>> 
>> gem 'sqlite3'
>> 
>> 
>> # Gems used only for assets and not required
>> # in production environments by default.
>> group :assets do
>> gem 'sass-rails',   '~> 3.2.3'
>> gem 'coffee-rails', '~> 3.2.1'
>> 
>> # See https://github.com/sstephenson/execjs#readme for more supported 
>> runtimes
>> # gem 'therubyracer', :platforms => :ruby
>> 
>> gem 'uglifier', '>= 1.0.3'
>> end
>> 
>> gem 'jquery-rails'
>> 
>> # To use ActiveModel has_secure_password
>> # gem 'bcrypt-ruby', '~> 3.0.0'
>> 
>> # To use Jbuilder templates for JSON
>> # gem 'jbuilder'
>> 
>> # Use unicorn as the app server
>> # gem 'unicorn'
>> 
>> # Deploy with Capistrano
>> # gem 'capistrano'
>> 
>> # To use debugger
>> # gem 'debugger'
>> 
> 
> -- 
> 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 [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
> 
> 

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to