Methods
public instance
Public instance methods
passenger_apache_module
()
Build, install, and enable the passenger apache module. Please see the passenger.conf.erb template for passenger configuration options.
[show source]
# File lib/moonshine/manifest/rails/passenger.rb, line 10 10: def passenger_apache_module 11: # Install Apache2 developer library 12: package "apache2-threaded-dev", :ensure => :installed 13: 14: file "/usr/local/src", :ensure => :directory 15: 16: exec "symlink_passenger", 17: :command => 'ln -nfs `passenger-config --root` /usr/local/src/passenger', 18: :unless => 'ls -al /usr/local/src/passenger | grep `passenger-config --root`', 19: :require => [ 20: package("passenger"), 21: file("/usr/local/src") 22: ] 23: 24: # Build Passenger from source 25: exec "build_passenger", 26: :cwd => configuration[:passenger][:path], 27: :command => '/usr/bin/ruby -S rake clean apache2', 28: :unless => "ls `passenger-config --root`/ext/apache2/mod_passenger.so", 29: :require => [ 30: package("passenger"), 31: package("apache2-mpm-worker"), 32: package("apache2-threaded-dev"), 33: exec('symlink_passenger') 34: ] 35: 36: load_template = "LoadModule passenger_module #{configuration[:passenger][:path]}/ext/apache2/mod_passenger.so" 37: 38: file '/etc/apache2/mods-available/passenger.load', 39: :ensure => :present, 40: :content => load_template, 41: :require => [exec("build_passenger")], 42: :notify => service("apache2"), 43: :alias => "passenger_load" 44: 45: file '/etc/apache2/mods-available/passenger.conf', 46: :ensure => :present, 47: :content => template(File.join(File.dirname(__FILE__), 'templates', 'passenger.conf.erb')), 48: :require => [exec("build_passenger")], 49: :notify => service("apache2"), 50: :alias => "passenger_conf" 51: 52: a2enmod 'passenger', :require => [exec("build_passenger"), file("passenger_conf"), file("passenger_load")] 53: end
passenger_configure_gem_path
()
[show source]
# File lib/moonshine/manifest/rails/passenger.rb, line 69 69: def passenger_configure_gem_path 70: configure(:passenger => {}) 71: return configuration[:passenger][:path] if configuration[:passenger][:path] 72: version = begin 73: configuration[:passenger][:version] || Gem::SourceIndex.from_installed_gems.find_name("passenger").last.version.to_s 74: rescue 75: `gem install passenger --no-ri --no-rdoc` 76: `passenger-config --version`.chomp 77: end 78: configure(:passenger => { :path => "#{Gem.dir}/gems/passenger-#{version}" }) 79: end
passenger_gem
()
Install the passenger gem
[show source]
# File lib/moonshine/manifest/rails/passenger.rb, line 3 3: def passenger_gem 4: configure(:passenger => {}) 5: package "passenger", :ensure => (configuration[:passenger][:version] || :latest), :provider => :gem 6: end
passenger_site
()
Creates and enables a vhost configuration named after your application. Also ensures that the 000-default vhost is disabled.
[show source]
# File lib/moonshine/manifest/rails/passenger.rb, line 57 57: def passenger_site 58: file "/etc/apache2/sites-available/#{configuration[:application]}", 59: :ensure => :present, 60: :content => template(File.join(File.dirname(__FILE__), 'templates', 'passenger.vhost.erb')), 61: :notify => service("apache2"), 62: :alias => "passenger_vhost", 63: :require => exec("a2enmod passenger") 64: 65: a2dissite '000-default', :require => file("passenger_vhost") 66: a2ensite configuration[:application], :require => file("passenger_vhost") 67: end