Проблема при установке Passenger

#ruby-on-rails #apache2 #passenger

#ruby-on-rails #apache2 #пассажир

Вопрос:

Я получаю эту проблему.

  passenger-install-apache2-module
  

Уже установлены Apache2 и passenger gem

     /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/lib/phusion_passenger/platform_info/apache.rb:277:in `_unmemoized_apr_config_needed_for_building_apache_modules?': undefined local variable or method `test_exe_outdir' for PhusionPassenger::PlatformInfo:Module (NameError)
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/lib/phusion_passenger/platform_info.rb:92:in `apr_config_needed_for_building_apache_modules?'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/bin/passenger-install-apache2-module:69:in `dependencies'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/lib/phusion_passenger/abstract_installer.rb:166:in `check_dependencies'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/bin/passenger-install-apache2-module:90:in `install!'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/lib/phusion_passenger/abstract_installer.rb:63:in `start'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/bin/passenger-install-apache2-module:236
        from /usr/bin/passenger-install-apache2-module:19:in `load'
        from /usr/bin/passenger-install-apache2-module:19
  

Ответ №1:

Эта проблема была исправлена, смотрите Первый комментарий здесь: http://code.google.com/p/phusion-passenger/issues/detail?id=653 и https://github.com/henare/passenger/compare/issue-653

На самом деле, просто нужно отредактировать файл «…/apache.rb» и заменить «test_exe_outdir» на «tmpexedir».

Комментарии:

1. с @user618981 все заработало после компиляции исходного кода. Проверьте ответ, опубликованный мной. в любом случае, спасибо за решение.

Ответ №2:

Возможно, это ошибка в программе установки Passenger, но, похоже, она срабатывает только в том случае, если отсутствуют apr-config или apu-config . Они являются частью apr пакета или apr-devel в некоторых системах, где версия для разработки необязательна.

При запуске и отображении диагностики должно отображаться что-то вроде этого:

 Checking for required software...

 * GNU C   compiler... found at /usr/bin/g  
 * Curl development headers with SSL support... found
 * OpenSSL development headers... found
 * Zlib development headers... found
 * Ruby development headers... found
 * OpenSSL support for Ruby... found
 * RubyGems... found
 * Rake... found at /opt/local/rvm/wrappers/ree-1.8.7-2011.03/rake
 * rack... found
 * Apache 2... found at /usr/sbin/httpd
 * Apache 2 development headers... found at /usr/sbin/apxs
 * Apache Portable Runtime (APR) development headers... found at /usr/bin/apr-1-config
 * Apache Portable Runtime Utility (APU) development headers... found at /usr/bin/apu-1-config
  

Если произойдет сбой до того, как вы дойдете до этого момента, вы можете указать установщику, какой APR и APU использовать, с параметрами командной строки.

Я также не могу установить 3.0.6 под Ruby 1.8.7, он был удален на этапе компиляции C , поэтому я не могу воспроизвести эту проблему. Однако раньше у меня не было проблем.

Комментарии:

1. Зависит от вашей платформы, но установите apr и apu с заголовками разработки.

2. проверьте решение, опубликованное мной. Спасибо за вашу помощь.

Ответ №3:

Вот решение:—

  1. Скомпилируйте исходный код passenger. Вы можете скачать его здесь

    Чтобы установить Passenger из исходного кода, извлеките архив с исходным кодом:

     tar xzvf passenger-X.X.X.tar.gz
      

    Затем запустите прилагаемый установщик:

     ./passenger-X.X.X/bin/passenger-install-apache2-module
      

    passenger-install уведомит об отсутствующих зависимостях. Установите их

  2. При использовании ruby 1.9.2 может возникнуть проблема с тем, что ssl не установлен. Попробуйте это:-

     cd to : /usr/local/src/ruby-1.9.2-p00/ext/openssl (or whatever)  
    sudo ruby extconf.rb
    make install 
      
  3. запустите предыдущую команду ie

      ./passenger-X.X.X/bin/passenger-install-apache2-module
      

и это будет работать как шарм. 🙂

Комментарии:

1. Возможно, ваш Ruby был скомпилирован без поддержки OpenSSL, и это вызывает проблемы.