Ruby网页仅显示源代码

时间:2015-11-13 18:16:36

标签: ruby cgi webpage

我正在尝试使用Ruby来设置主页。我目前有这个代码:

#!/usr/bin/ruby -w

puts "Hello, Ruby!";

它保存为testing.rb。我可以将文件存放到学校的公共服务器上,因此我将其放在学校的目录中,例如school.ca/myname/public_html/testing.rb

这适用于以前的HTML,CSS,Perl,ASP和PHP程序。现在我正在尝试建立Ruby并且我遇到了麻烦。它显示在URL上的是我上面的源代码。

我将文件权限更改为644。

3 个答案:

答案 0 :(得分:1)

您需要一个支持Ruby的Web服务器。有一个解决方案使运行Ruby几乎与运行PHP一样简单:Phusion Passenger。它可以作为Apache或Nginx插件安装,这是两个非常常见的Web服务器。但是,为了安装这些插件,您通常需要root访问您的服务器,我认为您没有。

完全不同的解决方案是使用Heroku等云服务提供商。只要您的应用程序没有24小时/天运行,它们就会提供免费计划。为了使用这项服务,你必须熟悉git,但这就像通过git上传你的代码来运行你的应用程序一样简单。

至于构建您的第一个Ruby Web应用程序,您应该查看Sinatra。一个简单的hello world应用程序如下所示:

require "sinatra"

get "/" do
  "Hello World!"
end

Sinatra是一个红宝石宝石。您可以使用名为gem的工具从命令行安装这些库:

gem install sinatra

答案 1 :(得分:1)

  

我将文件权限更改为644。

~/ruby_programs$ chmod 644 cgi.cgi
~/ruby_programs$ ls -al cgi.cgi
-rw-r--r--  1 7stud  staff  102 Nov 13 15:50 cgi.cgi

文件权限显示如下:

  1. 第一个字符是-d-表示文件,d表示目录

  2. 然后有三组三个字符表示ownergroupother的权限:

  3. r = readable
    w = writable
    x = executable
    

    644产生权限:

     rw-r--r-- 
    

    相当于:

    owner: rw-  (read, write)
    group: r--  (read only)
    other: r--  (read only)
    

    您不必知道谁是owner,或者谁属于group,或者属于other类别,以确认没有人拥有执行文件的权限。你需要这样做:

    ~/ruby_programs$ chmod a+x cgi.cgi   #=>all + x => give execute permissions to everyone
    ~/ruby_programs$ ls -al cgi.cgi
    -rwxr-xr-x  1 7stud  staff  102 Nov 13 15:50 cgi.cgi
    

    现在权限是:

     owner: rwx
     group: r-x
     other: r-x
    

    这意味着现在任何人都可以执行该文件。

      

    网址上显示的所有内容都是我上面的源代码。

    如果您还没有这样做,请尝试为您的ruby文件提供.cgi扩展名。然后使用此代码:

    #!/usr/bin/env ruby
    
    puts "Content-type: text/html\n\n"
    puts "<html><body>Hello, Ruby!</body></html>"
    

    你确定学校的服务器上安装了ruby吗?

答案 2 :(得分:0)

Ruby不是一种浏览器可以在没有帮助的情况下自行解释的语言 - 你需要设置一个服务器并让它自己打印出一个HTML网页,或者使用一个为你这样做的框架(即Sinatra,导轨)。