passenger_apache2 problems


#1

Hello all

I have just spent the afternoon trying to figure out why the
passenger_apache2 cookbook wasn’t working for me so my brain is a bit
broken, apologies.

The setup:

I am using Vagrant (with berkshelf) and the
https://dl.dropbox.com/u/31081437/Berkshelf-CentOS-6.3-x86_64-minimal.box box.

I am building ruby using the chef-ruby_build cookbook and then
symlinking to /usr/local/bin and /usr/bin.

I am then installing apache2 using the apache2 cookbook and attempting
to install the passenger_apache2 cookbook to install phusion passenger.

The passenger_apache2 cookbook installs the gem and .so files correctly
however the passenger.conf and passenger.load files always point to the
embedded chef ruby locations.

After a bit of searching I found
http://tickets.opscode.com/browse/COOK-2293 which is the exact issue I
am facing.

I have tried various methods and hacks to get it working (


) but nothing I have tried works (Including the fix from COOK-2293).

The comments on COOK-2293 don’t really seem to offer a solution either.

I have reached the end of my tether but prior to smashing something into
little pieces, does anyone have a solution or workaround? (One that
doesn’t involve setting default[‘passenger’][‘root_path’] and
default[‘passenger’][‘module_path’] manually.)

Cheers

Jeff
http://tickets.opscode.com/browse/COOK-2293


#2

Hi Jeffrey,

I’ve asked a similar question [0] on this list a few weeks ago. I specifically mentioned the use of rbenv for installing and managing Rubies, but the problem is the same.

TL;DR – There’s apparently no solution for this, at least not a simple one.

After banging my head too much trying to get the module to work, I decided to go passenger standalone (with a few tips from Mathieu Martin) and use an apache vhost to reverse-proxy the requests to this standalone instance. I can give you pointers for that if it works for you.

  • cassiano

[0] http://lists.opscode.com/sympa/arc/chef/2013-05/msg00204.html

On Thursday, May 23, 2013 at 05:43, Jeffrey Jones wrote:

Hello all

I have just spent the afternoon trying to figure out why the passenger_apache2 cookbook wasn’t working for me so my brain is a bit broken, apologies.

The setup:

I am using Vagrant (with berkshelf) and the https://dl.dropbox.com/u/31081437/Berkshelf-CentOS-6.3-x86_64-minimal.box box.

I am building ruby using the chef-ruby_build cookbook and then symlinking to /usr/local/bin and /usr/bin.

I am then installing apache2 using the apache2 cookbook and attempting to install the passenger_apache2 cookbook to install phusion passenger.

The passenger_apache2 cookbook installs the gem and .so files correctly however the passenger.conf and passenger.load files always point to the embedded chef ruby locations.

After a bit of searching I found http://tickets.opscode.com/browse/COOK-2293 which is the exact issue I am facing.

I have tried various methods and hacks to get it working ( https://gist.github.com/anonymous/3dc9e0d3413dfb973a1e
) but nothing I have tried works (Including the fix from COOK-2293).

The comments on COOK-2293 don’t really seem to offer a solution either.

I have reached the end of my tether but prior to smashing something into little pieces, does anyone have a solution or workaround? (One that doesn’t involve setting default[‘passenger’][‘root_path’] and default[‘passenger’][‘module_path’] manually.)

Cheers

Jeff


#3

Ahoi Cassiano.

Thanks for that, I am trying to avoid using passenger standalone as much
as possible. What I ended up doing was the following in my wrapper
cookbook’s attributes:

default[‘ruby’][‘version’] = '1.9.3’
default[‘ruby’][‘patch_level’] = ‘p429’

Hack to work around http://tickets.opscode.com/browse/COOK-2293 for

the moment
default[‘passenger’][‘root_path’] =
"#{node[‘ruby_build’][‘default_ruby_base_path’]}/#{node[‘ruby’][‘version’]}-#{node[‘ruby’][‘patch_level’]}/lib/ruby/gems/1.9.1/gems/passenger-#{passenger[‘version’]}"

Basically constructing the passenger root path semi-dynamically. The
gems/1.9.1/ bit is hardcoded but oh well.

cheers

Jeff

On 24/05/13 01:03, Cassiano Leal wrote:

Hi Jeffrey,

I’ve asked a similar question [0] on this list a few weeks ago. I
specifically mentioned the use of rbenv for installing and managing
Rubies, but the problem is the same.

TL;DR – There’s apparently no solution for this, at least not a
simple one.

After banging my head too much trying to get the module to work, I
decided to go passenger standalone (with a few tips from Mathieu
Martin) and use an apache vhost to reverse-proxy the requests to this
standalone instance. I can give you pointers for that if it works for you.

  • cassiano

[0] http://lists.opscode.com/sympa/arc/chef/2013-05/msg00204.html

On Thursday, May 23, 2013 at 05:43, Jeffrey Jones wrote:

Hello all

I have just spent the afternoon trying to figure out why the
passenger_apache2 cookbook wasn’t working for me so my brain is a bit
broken, apologies.

The setup:

I am using Vagrant (with berkshelf) and the
https://dl.dropbox.com/u/31081437/Berkshelf-CentOS-6.3-x86_64-minimal.box
box.

I am building ruby using the chef-ruby_build cookbook and then
symlinking to /usr/local/bin and /usr/bin.

I am then installing apache2 using the apache2 cookbook and
attempting to install the passenger_apache2 cookbook to install
phusion passenger.

The passenger_apache2 cookbook installs the gem and .so files
correctly however the passenger.conf and passenger.load files always
point to the embedded chef ruby locations.

After a bit of searching I found
http://tickets.opscode.com/browse/COOK-2293 which is the exact issue
I am facing.

I have tried various methods and hacks to get it working (
https://gist.github.com/anonymous/3dc9e0d3413dfb973a1e
) but nothing I have tried works (Including the fix from COOK-2293).

The comments on COOK-2293 don’t really seem to offer a solution either.

I have reached the end of my tether but prior to smashing something
into little pieces, does anyone have a solution or workaround? (One
that doesn’t involve setting default[‘passenger’][‘root_path’] and
default[‘passenger’][‘module_path’] manually.)

Cheers

Jeff


#4

I did something similar in the past, and I can’t recall now but it proved to be more of a headache than it was worth it. Something made the process a bit less deterministic than what I would have liked.

That said, I was using Chef 10.x at the time, and as of now most of the cookbooks have been upgraded as well, so you might get luckier than I did. Please let us know if it works out. A blog post would certainly be a great source of reference for people who encounter this problem in the future. :slight_smile:

Cheers!

  • cassiano

On Friday, May 24, 2013 at 01:15, Jeffrey Jones wrote:

Ahoi Cassiano.

Thanks for that, I am trying to avoid using passenger standalone as much as possible. What I ended up doing was the following in my wrapper cookbook’s attributes:

default[‘ruby’][‘version’] = '1.9.3’
default[‘ruby’][‘patch_level’] = ‘p429’

Hack to work around http://tickets.opscode.com/browse/COOK-2293 for the moment

default[‘passenger’][‘root_path’] = “#{node[‘ruby_build’][‘default_ruby_base_path’]}/#{node[‘ruby’][‘version’]}-#{node[‘ruby’][‘patch_level’]}/lib/ruby/gems/1.9.1/gems/passenger-#{passenger[‘version’]}”

Basically constructing the passenger root path semi-dynamically. The gems/1.9.1/ bit is hardcoded but oh well.

cheers

Jeff

On 24/05/13 01:03, Cassiano Leal wrote:

Hi Jeffrey,

I’ve asked a similar question [0] on this list a few weeks ago. I specifically mentioned the use of rbenv for installing and managing Rubies, but the problem is the same.

TL;DR – There’s apparently no solution for this, at least not a simple one.

After banging my head too much trying to get the module to work, I decided to go passenger standalone (with a few tips from Mathieu Martin) and use an apache vhost to reverse-proxy the requests to this standalone instance. I can give you pointers for that if it works for you.

  • cassiano

[0] http://lists.opscode.com/sympa/arc/chef/2013-05/msg00204.html

On Thursday, May 23, 2013 at 05:43, Jeffrey Jones wrote:

Hello all

I have just spent the afternoon trying to figure out why the passenger_apache2 cookbook wasn’t working for me so my brain is a bit broken, apologies.

The setup:

I am using Vagrant (with berkshelf) and the https://dl.dropbox.com/u/31081437/Berkshelf-CentOS-6.3-x86_64-minimal.box box.

I am building ruby using the chef-ruby_build cookbook and then symlinking to /usr/local/bin and /usr/bin.

I am then installing apache2 using the apache2 cookbook and attempting to install the passenger_apache2 cookbook to install phusion passenger.

The passenger_apache2 cookbook installs the gem and .so files correctly however the passenger.conf and passenger.load files always point to the embedded chef ruby locations.

After a bit of searching I found http://tickets.opscode.com/browse/COOK-2293 which is the exact issue I am facing.

I have tried various methods and hacks to get it working ( https://gist.github.com/anonymous/3dc9e0d3413dfb973a1e
) but nothing I have tried works (Including the fix from COOK-2293).

The comments on COOK-2293 don’t really seem to offer a solution either.

I have reached the end of my tether but prior to smashing something into little pieces, does anyone have a solution or workaround? (One that doesn’t involve setting default[‘passenger’][‘root_path’] and default[‘passenger’][‘module_path’] manually.)

Cheers

Jeff