2012-01-27 7 views
2

Webブラウザで.rbファイルを実行するために必要なものは?.rb Rubyファイルの実行

(ルビーで私の最初の日)

私は助手席で(私はPHPから来ている)Apacheサーバを持っています。ターミナル証明:

[email protected]:~$ apache2ctl -t -D DUMP_MODULES 
passenger_module (shared) 

ルビー1.9.3p0(2011年10月30日リビジョン33570)[x86_64の-linuxの]

私はまた、レールなどをインストールして、レールに迅速なアプリを作ってみました、それが働きました良い。

ブラウザで.rbファイルを開くだけで、保存するように求められます。 これは私のブラウザでは、クリックした後の右側のポップアップウィンドウがどのように見えるのか、どこに保存するかを尋ねるものです。 Rubyと、このファイルに関する enter image description here

エントリは、以下のとおりです。

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 

仮想hosts.conf

<VirtualHost *:80> 
    ServerName tictactoe.ruby.dev 
    DocumentRoot "/localhost/sandbox/RUBY/tictactoe/" 
    ErrorLog /var/log/rubyonrails2.log 
</VirtualHost> 

の/ etc /ホスト

127.0.0.1 tictactoe.ruby.dev 

ウェブブラウザで.rbファイルを実行するには何が必要ですか? 私はそれが乗客のためだと思った...

+4

RubyファイルはWebブラウザでは実行されません。ディレクトリブラウジングから '.rb'ファイルをクリックし、Rubyインタプリタでそのファイルを実行させ、STDOUTに置いたものをプレーンテキストとしてウェブブラウザに送りたいのですか? – Phrogz

+2

私は 'game.rb'の内容を見たいと思います。あなたはブラウザに出力しようとしているものは何ですか?それがHTMLやJavaScriptの場合を除き、あなたは失望します。 – meagar

+0

CGIの仕組みを理解していれば、HTTPサーバーとインターフェースするRuby、Perl、さらにはBASHアプリケーションを書くのは簡単です。あなたがそれを理解していなければ、それを並行して学ぶ必要があります。 Rubyに付属の['CGI'](http://rubydoc.info/stdlib/cgi/frames)モジュールを調べて、あらかじめ書かれたホイールをいくつか用意する必要があります。 –

答えて

0

Rubyはサーバー側の言語です。必要なのは、プロセスがリクエストをインターセプトし、正しいRubyファイルにルーティングして実行し、ブラウザに出力を送信することです。幸いにも、あなたのために誰かがRackPassengerとしています。

Railsフレームワーク内で作業するのではなく、これをやりたいのはなぜ私を超えているのですか?

+1

まあ、私は "コンピュータ"と対戦しているチックタックのつま先のゲームを出力する必要がある1つのファイルがあります。 1つのファイルを動作させるためにレールを使用するのはちょっと重いですか? –

+1

最後の文について、まあ、私は "私はPHPから来ています"という文章はすべて言っていると思います。 –

+1

いいえ、それは全く重いものではありません。 RubyはPHPではありません。汎用言語ですから、あなたとWebブラウザの間に何かが必要です。 Railsがあなたのために処理する要求/応答プロセス全体があります。また、ティック・タック・トゥ・ゲームを「出力」しているということはどういう意味ですか?テキストで?ブラウザは対話的なテキスト端末ではなく、動作しません。 – meagar

1

最初の日? Sinatraチュートリアルをお試しください。何かを手に入れてすぐに動かすのは簡単ですし、言語の学習に集中することもできます。 APACHEからスクリプトを実行するために.RB

+0

しかし、Rubyを最初に学んでください。そうでなければSinatraでも混乱します。 –

+0

@theTinMan私はそれが可能だと思います...私はRubyを学ぶ前にRailsを学びました。 –

5

STEPS:

編集Apacheの設定ファイル(例えば、ある/etc/httpd/conf/httpd.conf)。 Updateまたはそれは ".RB" が含まれるようにAddHandlerの設定を作成して、例えば:

AddHandler cgi-script .cgi .rb 

あなたのRubyスクリプトを作成します(.RB)。ルビーインタプリタを指し示すシバン(#!)があることを確認してください。ルビがどこにないかわからない場合は、 "which"コマンドを使用してください。 Apacheがそれを実行できるように、.RBファイル、例えば:あなたがしなければならないのかもしれません

-rwxr-x--- 1 apache apache 163 Nov 26 10:55 index.rb 

#!/bin/ruby 
puts "Content-type: text/html" 
puts 
puts "<html>" 
puts "<body>" 
puts "<h3>Hello</h3>" 

設定し、適切な所有権と実行権限(x)です。あなたのスクリプトがまだ実行されない場合、私が試みる最初のトラブルシューティングのステップはSELinuxを一時的に無効にすることです(setenforce 0を使用して)。

関連する問題