#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:
Вот решение:—
-
Скомпилируйте исходный код passenger. Вы можете скачать его здесь
Чтобы установить Passenger из исходного кода, извлеките архив с исходным кодом:
tar xzvf passenger-X.X.X.tar.gz
Затем запустите прилагаемый установщик:
./passenger-X.X.X/bin/passenger-install-apache2-module
passenger-install уведомит об отсутствующих зависимостях. Установите их
-
При использовании 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
-
запустите предыдущую команду ie
./passenger-X.X.X/bin/passenger-install-apache2-module
и это будет работать как шарм. 🙂
Комментарии:
1. Возможно, ваш Ruby был скомпилирован без поддержки OpenSSL, и это вызывает проблемы.