Как мне получить Ruby CGI-программу, для правильной работы которой требуется гем? - PullRequest
1 голос
/ 23 сентября 2010

Я настроил установку Apache для запуска сценариев Ruby CGI. Сейчас я пытаюсь запустить простой CGI-скрипт на Ruby, который требует гем.

Когда я запускаю этот скрипт из командной строки, он выводит правильно. Но когда я называю его скриптом Apache CGI, он генерирует Apache Internal Server Error . Сценарий выглядит так:

#!/Ruby/bin/ruby

require 'RedCloth'  # <-- This is the gem

puts "Content-type: text/html"
puts 
puts
puts "<html>"
puts "<head>"
puts "</head>"
puts "<body>"
puts "I want to call a gem."
puts "</body>"
puts "</html>"

Журнал ошибок Apache показывает следующие строки:

C:/Ruby/lib/ruby/1.9.1/rubygems/config_file.rb:56:in `join': can't convert nil into String (TypeError)
[error] [client 127.0.0.1] \tfrom C:/Ruby/lib/ruby/1.9.1/rubygems/config_file.rb:56:in `<class:ConfigFile>'
[error] [client 127.0.0.1] \tfrom C:/Ruby/lib/ruby/1.9.1/rubygems/config_file.rb:28:in `<top (required)>'
[error] [client 127.0.0.1] \tfrom <internal:lib/rubygems/custom_require>:29:in `require'
[error] [client 127.0.0.1] \tfrom <internal:lib/rubygems/custom_require>:29:in `require'
[error] [client 127.0.0.1] \tfrom C:/Ruby/lib/ruby/1.9.1/rubygems.rb:1110:in `<top (required)>'
[error] [client 127.0.0.1] \tfrom <internal:lib/rubygems/custom_require>:29:in `require'
[error] [client 127.0.0.1] \tfrom <internal:lib/rubygems/custom_require>:29:in `require'
[error] [client 127.0.0.1] \tfrom <internal:gem_prelude>:167:in `load_full_rubygems_library'
[error] [client 127.0.0.1] \tfrom <internal:gem_prelude>:217:in `try_activate'
[error] [client 127.0.0.1] \tfrom <internal:lib/rubygems/custom_require>:32:in `rescue in require'
[error] [client 127.0.0.1] \tfrom <internal:lib/rubygems/custom_require>:29:in `require'
[error] [client 127.0.0.1] \tfrom C:/Apache/Apache2.2/cgi-bin/cgitest.rb:3:in `<main>'

Когда я не включаю строку require 'RedCloth', Apache прекрасно выполняет мой скрипт cgi.

Есть ли что-то очевидное, что я здесь скучаю? Можете ли вы даже выполнить сценарий Ruby CGI, для которого требуется гем? Любая идея будет принята с благодарностью.

Спасибо, Maurice

1 Ответ

2 голосов
/ 23 сентября 2010

Вы пробовали это?

require 'rubygems'
require 'RedCloth'  # <-- This is the gem
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...