运行.rb Ruby文件

Gun*_*ess 2 ruby apache

在Web浏览器中运行.rb文件需要什么?

(我在红宝石的第一天)

我有乘客的Apache服务器(我来自PHP).终端证明:

gundars@linuxr528:~$ apache2ctl -t -D DUMP_MODULES
passenger_module (shared)
Run Code Online (Sandbox Code Playgroud)

ruby 1.9.3p0(2011-10-30修订版33570)[x86_64-linux]

我也安装了rails等,尝试使用rails制作一个快速的应用程序,它工作正常.

现在我想在浏览器中打开.rb文件,它会提示我保存它.这就是它在浏览器中的样子,点击后弹出右侧的窗口,它会询问保存位置. 在此输入图像描述

关于Ruby和这个文件的条目是:

apache2.conf:

LoadModule passenger_module /home/gundars/.rvm/gems/ruby-1.9.3-p0/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /home/gundars/.rvm/gems/ruby-1.9.3-p0/gems/passenger-3.0.11
PassengerRuby /home/gundars/.rvm/wrappers/ruby-1.9.3-p0/ruby
Run Code Online (Sandbox Code Playgroud)

虚拟hosts.conf

<VirtualHost *:80>
   ServerName tictactoe.ruby.dev
   DocumentRoot "/localhost/sandbox/RUBY/tictactoe/"
   ErrorLog /var/log/rubyonrails2.log
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

/ etc/hosts文件

127.0.0.1   tictactoe.ruby.dev
Run Code Online (Sandbox Code Playgroud)

所以问题 - 在Web浏览器中运行.rb文件需要什么?我以为这是乘客的意思......

小智 5

从APACHE开始的步骤.rb SCRIPTS:

编辑您的apache配置文件(例如/etc/httpd/conf/httpd.conf).更新或创建AddHandler设置,使其包含".rb",例如:

AddHandler cgi-script .cgi .rb
Run Code Online (Sandbox Code Playgroud)

创建ruby脚本(.rb).确保你有一个shebang(#!)指向你的红宝石翻译.如果您不确定ruby在哪里,请使用"which"命令.

#!/bin/ruby
puts "Content-type: text/html"
puts
puts "<html>"
puts "<body>"
puts "<h3>Hello</h3>"
Run Code Online (Sandbox Code Playgroud)

在.rb文件上设置正确的所有权和执行权限(x),以便apache可以执行它,例如:

-rwxr-x--- 1 apache apache 163 Nov 26 10:55 index.rb
Run Code Online (Sandbox Code Playgroud)

这可能是你所要做的.如果您的脚本仍未执行,我将尝试的第一个故障排除步骤是暂时禁用SELinux(使用setenforce 0).