Hi Vell

Doing a reinstall might well save you a lot of hassle. In my last install I 
used sudo all the way through (the server is a test server for an eventual 
production server) and no RVM since I was only going to use Ruby 1.9.2 (like 
you). I wrote down all the steps during the install and this "recipe" works 
well enough for me. Note that all apt-get installs use sudo, no doubt there are 
some places where that was unnecessary - but I couldn't be bothered to find 
out. The server also has Asterisk installed, you probably don't need that so 
I've commented out those lines that are Asterisk specific (with ##) but left 
them in the recipe anyway:

During install, Ubuntu 11.10, following packages selected:
 OpenSSH server
 LAMP server

$sudo visudo
  ##added last line:
  <my user name> ALL=(ALL) NOPASSWD: ALL

$sudo apt-get update
$sudo apt-get upgrade

##$sudo apt-get install asterisk sox asterisk-mysql asterisk-mp3

$sudo apt-get install build-essential openssl libreadline6 libreadline6-dev 
curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 
libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev 
automake libtool bison subversion

$sudo apt-get install ruby1.9.2
$ruby -v
 >ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
$gem -v
 >1.3.7

$sudo gem update

$sudo env REALLY_GEM_UPDATE_SYSTEM=1 gem update --system
$gem -v
 >1.8.12
$sudo apt-get install ruby1.9.1-dev
##see: 
http://rbjl.net/20-rubybuntu-2-troubleshooting-common-ruby-ubuntu-problems

$sudo gem install rails -v=3.1.0
$rails -v
 >Rails 3.1.0
$rake --version
 >rake, version 0.9.2

$sudo gem install passenger
$sudo passenger-install-apache2-module
$sudo apt-get install libcurl4-openssl-dev
$sudo apt-get install apache2-prefork-dev
$sudo apt-get install libapr1-dev
$sudo passenger-install-apache2-module

$sudo vim /etc/apache2/apache2.conf
 ##Added these lines at bottom of file:

 LoadModule passenger_module 
/usr/lib/ruby/gems/1.9.1/gems/passenger3.0.11/ext/apache2/mod_passenger.so
 PassengerRoot /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.11
 PassengerRuby /usr/bin/ruby1.9.1


$sudo service apache2 restart

##$sudo gem install adhearsion
##$ahn -v
## >Adhearsion v1.2.3

$sudo apt-get install phpmyadmin

##Install java runtime:

$sudo apt-get install python-software-properties
$sudo add-apt-repository ppa:chris-lea/node.js
$sudo apt-get update
$sudo apt-get install nodejs

##### END install - and everything works fine #####

-----Oprindelig meddelelse-----
Fra: [email protected] 
[mailto:[email protected]] På vegne af Vell
Sendt: 15. december 2011 06:06
Til: Ruby on Rails: Talk
Emne: [Rails] Re: How can I get RVM/Passenger/Apache2 to play nicely together

Ok so I tried using the scenario that the phusion blog wrote out but I
am still getting a permission denied. I have a freshly installed
ubuntu 11.10 system so now I am sure that whats going on is related to
one install and not several different install attempts. SOOOO here is
what I have.

Reference Tutorial:
http://www.google.com/url?sa=D&q=http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/&usg=AFQjCNGMN5oWTn9Sf7yHwK33id7p7PJ-KQ

The difference I did from this tutorial is that I wanted rails 1.9.2
to be the default since I won't be running any 1.8.7 apps.

Install goes as follows:
1. Installed rvm (single user)
-- For whatever reason when installed multi-user I was not able to
load rvm into my terminal after logging in/out
2. Installed ruby 1.9.2
-- rvm install 1.9.2
3. Made 1.9.2 the default
-- rvm --default use 1.9.2

4. Added the following to /etc/apache2/apache2.conf:

LoadModule passenger_module /home/vmcilwain/.rvm/gems/ruby-1.9.2-p290/
gems/passenger-3.0.11/ext/apache2/mod_passenger.so
   PassengerRoot /home/vmcilwain/.rvm/gems/ruby-1.9.2-p290/gems/
passenger-3.0.11
PassengerRuby /home/vmcilwain/.rvm/wrappers/ruby-1.9.2-p290/ruby

<VirtualHost *:80>
        ServerName vmcilwain-dell
        DocumentRoot /home/vmcilwain/sites/vell
</VirtualHost>

Unfortunately for some reason I am not able get to rubygems.org or
github.com so I am not able to run bundle to get all of the necessary
gems installed. I get the following error:
Fetching source index for http://rubygems.org/
Fetching source index for http://github.com/
Could not reach rubygems repository http://rubygems.org/, http://github.com/

The weird thing is that I am able to ping both domains. Also when I
create a brand new rails app bundle runs fine so I am curious about
what it does not like about my Gemfile this time around that it had no
problem with the last 5 times I have run it for that particular app.

With the fresh rails app that I have just created I am not able to
create the database using rake db create it is also giving me an
error:

vmcilwain@vmcilwain--D610:~/vell_new$ bundle exec rake db:create
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs
for a list of available runtimes.

(See full trace by running task with --trace)

I do have gem 'execjs' in my Gemfile so I am not sure exactly what I
am doing wrong in this case either.

On Dec 14, 2:35 pm, Jeff Lewis <[email protected]> wrote:
> Hi Vell,
>
> Once you figure out that apache vhost path / read issue on your new
> setup, ....
>
> If you're using passenger and you're running rvm, then you're likely
> using (or will use) different rubies and/or gemsets for projects on a
> given machine.  If so, then you might want to consider using passenger-
> standalone instead of passenger-apache-module:
>
> http://www.modrails.com/documentation/Users%20guide%20Standalone.html
>
> The main benefit of running passenger-standalone is that you can run
> multiple projects that use diff rubies/gemsets from the same apache (/
> nginx/...).  Here's an example setup from the phusion folks:
>
> http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-...
>
> I've been using passenger-standalone in production for over a year now
> on a number of projects, and it works well.  Those clients that use
> passenger no longer use passenger-module and instead just use proxy'd
> passenger-standalone for both their dev and prod envs.
>
> Here's an example of the setup on a local dev instance for a given rvm
> passenger-standalone project where I typically maintain an rvm gemset
> per project:
>
> ####### localhost subdomain for the proj:
> $ cat /etc/hosts
> ...
> 127.0.0.1 foo.localhost
> ...
>
> ###### vhost conf for the proj:
>
> $ cat /etc/apache2/sites-available/foo.conf
> ####http://foo.localhost/
> <VirtualHost *:80>
>   ServerName foo.localhost
>   DocumentRoot /path/to/foo/public
>   <Directory /path/to/foo/public>
>     AllowOverride all
>     Options -MultiViews
>   </Directory>
>
>   ProxyRequests Off
>   <Proxy *>
>     Order deny,allow
>     Deny from all
>     Allow from 127.0.0.1
>   </Proxy>
>   ProxyPass /http://127.0.0.1:3044/
>   ProxyPassReverse /http://127.0.0.1:3044/
>   RewriteEngine On
>   RewriteCond %{LA-U:REMOTE_USER} (.+)
>   RewriteRule . - [E=RU:%1]
>   RequestHeader add X-Forwarded-User %{RU}e
>   ProxyPreserveHost on
>
>   CustomLog /var/log/apache2/foo_access_log combined
>   ErrorLog /var/log/apache2/foo_error_log
>
>   ErrorDocument 503 "<!DOCTYPE html><html><head><meta http-
> equiv='Content-Type' content='text/html; charset=UTF-8' /><title>Foo
> Service Is Temporarily Unavailable (503)</title></head><body><h2>Foo
> Service Is Temporarily Unavailable (503)</h2><p>The Foo service is
> temporarily unable to process your request due to maintenance
> downtime.</p><p>Thanks for your patience. Please try again later.</p></
> body></html>"
>
> </VirtualHost>
>
> ###### I usually have a custom script to
> ###### manage rails env server for proj:
>
> $ pwd
> /path/to/foo
>
> $ cat ./script/foo_env_server.rb
> ###
> ### foo_env_server.rb is used to start/stop/restart/status the foo
> env.
> ###
> ### Usage: $ ruby ./script/foo_env_server.rb ENV ACTION
> ###   ENV     : development or production
> ###   ACTION  : start, stop, restart or status
> ###
> ### Note: currently serving foo rails app using passenger-standalone
> ###       proxy'd via apache.
> ###
>
> APP_NAME = "foo"
> DEV_PORT = 3044
> PROD_PORT = 8044
>
> PROJ_ROOT = File.expand_path("#{File.dirname(__FILE__)}/..")
> DEV_ENV = "development"
> PROD_ENV = "production"
> ENVS = [ DEV_ENV, PROD_ENV ]
> LOG_FNAMES = { DEV_ENV=>"#{PROJ_ROOT}/log/#{DEV_ENV}.log",
> PROD_ENV=>"#{PROJ_ROOT}/log/#{PROD_ENV}.log" }
> PID_FNAMES = { DEV_ENV=>"#{PROJ_ROOT}/tmp/pid/#{DEV_ENV}-passenger-
> #{DEV_PORT}.pid", PROD_ENV=>"#{PROJ_ROOT}/tmp/pid/#{PROD_ENV}-
> passenger-#{PROD_PORT}.pid" }
> PORTS = { DEV_ENV=>DEV_PORT, PROD_ENV=>PROD_PORT }
> ACTIONS = [ 'status', 'start', 'stop', 'restart' ]
> ...
>
> def start(env)
>   port = PORTS[env]
>   pid_fname = PID_FNAMES[env]
>   log_fname = LOG_FNAMES[env]
>   ...
>                                    # start env server.
>   res = `passenger start --port #{port} --environment #{env} --log-
> file #{log_fname} --pid-file #{pid_fname} --daemonize 2>&1`.strip
>   ...
> end
> ...
>
> $ rvm 1.9.2@foo && ruby ./script/foo_env_server.rb development restart
> ...
> foo development env on port 3044:    started: pid = 26797  (saved to /
> path/to/foo/tmp/pid/development-passenger-3044.pid)
>
> ###### test serving static content?:
>
> $ echo "hi from static foo" > ./public/foo.txt && curl 
> -sihttp://foo.localhost/foo.txt&&; rm ./public/foo.txt
> HTTP/1.1 200 OK
> ...
> hi from static foo
>
> ###### test serving dynamic content?:
>
> $ cat ./config/routes.rb
> ...
>   match '/ping' => 'misc#ping', :via => [:get]
> ...
>
> $ cat ./app/controllers/misc_controller.rb
> ...
>   def ping
>     render(:text=>"1\n")
>   end
> ...
>
> $ curl -sihttp://foo.localhost/ping
> HTTP/1.1 200 OK
> ...
> 1
>
> Another general benefit of this type of proxy'd setup is that if you
> or your client decides they want to test / use a diff rails app server
> for the proj, like unicorn or thin or ...., it's a lot easier to make
> that switch (basically, stop curr env, install new gems as required,
> mod ./script/foo_env_server.rb start call, start env, test, ....).
>
> Jeff
>
> On Dec 14, 10:51 am, Vell <[email protected]> wrote:
>
>
>
>
>
>
>
> > That is a very good catch. I will certainly make that change as well.
> > I am at the point that I am also going to re-install ubuntu and start
> > from scratch just to eliminate any other possibilities that might be
> > happening behind the scenes. I will post my success of failure once I
> > am done.
>
> > On Dec 14, 11:21 am, Frederick Cheung <[email protected]>
> > wrote:
>
> > > On Dec 14, 3:15 pm, Vell <[email protected]> wrote:
>
> > > >     DocumentRoot "/home/lmcilwain/vell/current/public"
> > > > <Directory "/var/www/sites/vell/current/public">
>
> > > The fact that these two paths don't match is suspicious to me. You'd
> > > want both pointing at wherever it is on this that your app is.
>
> > > Fred

--
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 this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.



-- 
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 this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to