Помогите настроить эту связку! Ruby будет использоваться без ROR.
Попробовал делать так, как написано здесь: http://rubygarden.org/ruby/ruby?FastCGI
- не работает. Точнее запускается скрипт с четвертого обновления страницы и потом, какое бы имя страницы не вводилось - работает тот скрипт, который был запущен первым. Чтобы было понятнее привожу вырезку из конфига и примеры скриптов.
lighttpd.conf
############################################################
server.modules = ("mod_fastcgi", "mod_rewrite")
static-file.exclude-extensions = ( ".rb" )
index-file.names = ( "index.html" )
fastcgi.server = (
".rb" =>
( "localhost" =>
(
"socket" => "/tmp/ruby.socket",
"bin-path" => "/opt/csw/bin/ruby-cgi"
)
)
)
############################################################
/opt/csw/bin/ruby-cgi - это dispatcher отсюда: http://pallas.telperion.info/ruby-cgi/test1.rb:
#!/usr/bin/ruby
require 'cgi'
require 'fcgi'
FCGI.each_cgi{|cgi| cgi.out{'<HTML>hello, world.</HTML>'}}test2.rb:
#!/usr/bin/ruby
require 'cgi'
require 'fcgi'
FCGI.each_cgi{|cgi| cgi.out{'<HTML>hello, world - 2.</HTML>'}}В итоге:
1. Запускаю lighttpd
2. Ввожу в браузере адрес: http://localhost/test1.rb
3. Браузер задумывается. Нажимаю 4 раза Refresh (тут похоже lighttpd запускает 4 копии dispatcher'а) и получаю на экране строку "hello, world."
4. Меняю URL на http://localhost/test2.rb, обновляю страницу и снова получаю "hello, world." вместо "hello, world - 2." :(((
5. Если после запуска lighttpd первой страницей открыть test2.rb - то картина получается с точностью до наоборот -- фраза "hello, world - 2." при выполнении любого из скриптов :(Может я то-то не так настраиваю? Очень бы хотелось избежать этих 4-х refresh'ей и получить-таки нормально работающий fcgi.
http://brainspl.at/pages/perfect_vps
http://digitalmediaminute.com/howto/fc4rails/
Все, уже разобрался - не надо было второй раз итератором по FCGI проходить. Получалось, что первая запущенная программа сама становилась dispatcher'ом.
> Все, уже разобрался - не надо было второй раз итератором по FCGI
> проходить. Получалось, что первая запущенная программа сама становилась dispatcher'ом.Что под этим подразумевается?