Fingertips / passengerpane

A Mac OS X preference pane for easily configuring Rails applications with Passenger.
http://www.fngtps.com/2008/06/putting-the-pane-back-into-deployment
Other
592 stars 42 forks source link

It should be possible to choose an alternate Ruby for an app #59

Closed wycats closed 13 years ago

wycats commented 13 years ago

It would be great if it was possible to specify an alternate Ruby (ideally with RUBYOPT flags) for an application.

Ideally, this could be specified on a per-app basis in a file in the root (perhaps a shebang comment in the config.ru?)

alloy commented 13 years ago

Like discussed, I will look into this a bit on monday.

alloy commented 13 years ago

Err, I mistakenly said monday, but Manfred won't be back until tomorrow, so I can't discuss it just yet.

alloy commented 13 years ago

Reading the Passenger manual, you can only specify which Ruby to use, once: http://modrails.com/documentation/Users%20guide%20Apache.html#PassengerRuby

Which in your case shouldn't be a problem. I suggest you make your SproutCore pkg install the following file:

% cat /etc/apache2/other/passenger.conf
LoadModule passenger_module /path/to/your/SproutCore/install/1.9/gems/passenger-3.0.0/ext/apache2/mod_passenger.so
PassengerRoot /path/to/your/SproutCore/install/1.9/gems/passenger-3.0.0
PassengerRuby /path/to/your/SproutCore/install/usr/bin/ruby

The default OS X http.conf file will automatically load that config the next time because it includes:

Include /private/etc/apache2/other/*.conf

The PassengerPane can then be installed as normally, it doesn't care about these types of Passenger configuration options. The pane will append the following to httpd.conf, which will make apache load the vhosts the next time:

# Added by the Passenger preference pane
# Make sure to include the Passenger configuration (the LoadModule,
# PassengerRoot, and PassengerRuby directives) before this section.
<IfModule passenger_module>
  NameVirtualHost *:80
  <VirtualHost *:80>
    ServerName _default_
  </VirtualHost>
  Include /private/etc/apache2/passenger_pane_vhosts/*.vhost.conf
</IfModule>