我想让apache2运行ruby脚本。我设法通过使用CGI来做到这一点,但现在我想更进一步,用mod_ruby做。我通过apt-get安装了mod_ruby,因此应该启用它,但是当我访问http://localhost/test.rb时,我的浏览器会下载文件而不是显示它的输出。
如果我打开/etc/apache2/mods-enabled/ruby.load,则会有一行包含路径执行此修改。
我还在apache2.conf中添加了以下内容:
<IfModule mod_ruby.c>
<Directory /var/www/>
Options +ExecCGI
</Directory>
RubyRequire apache/ruby-run
#RubySafeLevel 0
<Files *.rb>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>
<Files *.rbx>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>
</IfModule>
你能帮帮我吗?
PS。请不要建议使用ROR。我很熟悉。现在我只想出于教育原因使用ruby。还请保持简单,我是阿帕奇的新手。
答案 0 :(得分:2)
请参阅this article - 它有一些说明。基本上你需要告诉Apache通过处理程序传递你的Ruby文件。
另外,考虑尝试Sinatra - 它是一个微型Web框架,就像普通的ruby文件一样简单。它与Passenger一起运行,这是用于Apache的记录良好的 Ruby模块。
答案 1 :(得分:1)
关于HowtoForge的文章几乎涵盖了整个故事,但我需要在<Directory /var/www>
指令中添加一行以防止浏览器下载文件:
AddType text/html .rb .rbx
以下是我发现有帮助的其他几个网站:
答案 2 :(得分:0)
Debian Stretch 9。
我尝试使用mod_ruby
安装apt-get install libapache2-mod-ruby
,但没有该名称的软件包。最后,我要做的就是将这一行添加到apache-config中,以使服务器运行我的脚本。
AddHandler cgi-script .rb