Answers:
好吧,与此同时,我想出了这一点。由于没有关于该主题的简明文章,因此这是一个开始。解决所有错误后,我将其提交给一些教程站点。
确保已安装基本的fastcgi apache模块。如果像我一样使用ArchLinux,则aur上的mod_fcgid可以工作。在其他发行版中,安装mod_fcgid或mod_fastcgi。(对于那些想知道差异的人,我认为没有太多,所以我去参加了更多活动。)
在您的httpd.conf文件中,通过在LoadModule定义的开头添加一行来激活模块。不确定哪个发行版是否重要,但在Arch上Loadmodule fcgid_module modules/mod_fcgid.so
在您的httpd.conf中添加一个新部分。我把它放在cgid_module部分的下面,但是我很确定位置是任意的。
<IfModule fcgid_module>
AddHandler fcgid-script .fgci
</IfModule>
现在,根据我的理解,目录中标记为ExecCGI的任何带有.fcgi扩展名的文件都将由已安装的fastcgi模块处理。我安装了此软件包,以便在ExecCGI目录中为Ruby提供fastcgi绑定,我编写了此测试脚本test.rb.fcgi
#!/usr/bin/ruby -w
require 'fcgi'
count = 0
FCGI.each_cgi do
puts "Content-type: text/html\n\n"
puts "Hello, Ruby! FastCGI(#{count})"
count = count + 1
end
现在,当您在浏览器中转到该页面时,由于count
它位于fastcgi循环之外,因此应随每个页面视图的增加而增加。如果是这样,则说明fcgi设置正确。
<Directory>
在<VirtualHost>
上下文中使用指令处理整洁的.rb文件,例如– AddHandler fcgi-script .rb
和FCGIWrapper /path/to/ruby .rb
(以消除Web脚本的hashbang要求)。也许吧Options ExecCGI
。可以试一下。
您应该考虑使用Passenger处理Rails应用程序(即使您没有使用ActiveRecord等任何Rails功能)。它上运行着许多网站(此外,它们还有Rails Enterprise,更少的内存,更好的性能)