Я пытаюсь заставить Apache интерпретировать мои файлы Ruby, но я не понимаю, как это сделать. Я не имею отношения к Rails сейчас, только Ruby. То, что я нашел в Google, только смущает меня. Любой совет?
Я пытаюсь заставить Apache интерпретировать мои файлы Ruby, но я не понимаю, как это сделать. Я не имею отношения к Rails сейчас, только Ruby. То, что я нашел в Google, только смущает меня. Любой совет?
Ответы:
Наиболее распространенный способ запуска кода ruby в среде веб-сервера - использование кода для реализации стоечного интерфейса. Это очень простой API, который позволяет веб-серверу общаться с вашим приложением ruby. Для Apache наиболее распространенным обработчиком стойки является пассажирский (он же mod_rails и mod_rack). Почти все текущие веб-фреймы ruby (например, rails, sinatra, camp, ...) подключаются к веб-серверу с помощью обработчика стойки. Вы можете использовать одну из этих платформ, но вы также можете писать стоечные приложения напрямую без них. Все серверы приложений ruby (монгрел, тонкий, единорог, радуга, ...) реализуют интерфейс стойки.
Другой альтернативой может быть использование (f) cgi, но я бы посоветовал вам держаться подальше от этого маршрута, поскольку интерфейс и протоколы неудобны и на самом деле не предоставляют современных средств управления.
Некоторое время я пытался найти простой ответ на этот вопрос и понял, что все, что вам нужно сделать, это поместить скрипт ruby в каталог cgi-bin вашего веб-сервера и загрузить соответствующий URL. Так, например, в моей установке CentOS 6.2 / httpd по умолчанию я поместил скрипт с именем hello.rb в / var / www / cgi-bin /, а затем загрузил http: //localhost/cgi-bin/hello.rb в свой браузер и он выполнил скрипт и показал мне, что пошло в STDOUT (то есть из пут и т. д.).
Здесь происходит то, что каждый раз, когда URL-адрес загружается, скрипт полностью запускается. Это не идеально для большого объема веб-сервера или где скорость имеет решающее значение - поэтому что-то вроде fastCGI всегда поддерживает выполнение сценария, но вы должны написать сценарий, чтобы справиться с этим.
надеюсь, это поможет.
Вы можете выполнять сценарии ruby с быстрым CGI. Посмотрите на проект fcgi для получения дополнительной информации.
Попробуйте модрубы .
Invalid command 'RubyAddPath'
Это какая-то эзотерическая вещь, которую никто никогда не делает? Я удивлен тем, как трудно заставить Ruby работать с Apache по сравнению с PHP.
AddHandler ruby-object .rbx
, LoadModule ruby_module /path/to/mod_ruby
, RubyRequire apache/ruby-run
и RubyHandler Apache::RubyRun.instance
к httpd.conf
должно быть достаточно для простой конфигурации.