Rubyに関連するものを検索すると、すべてのRuby on Rails関連の結果がポップアップするので、raw Rubyもう?
しかし、私はRubyを初めて使用します。今朝、私は単純なhello world RubyスクリプトをWebサーバーで実行しようとしていました。最初はApache2で、次に雑種を試しました。しかし、残念ながら失敗しました。可能な限りグーグルで検索しましたが、結果はRailsでRubyについてのみ表示されます。したがって、任意のWebサーバーでRubyスクリプトを実行する方法は実際にあります。または、私がhello worldアプリケーションを実行したいだけですか?
Railsを使用せずにWebサーバーからRubyスクリプトを実行するには、Sinatraがおそらく最善の策です。
ここを見てください: http://www.sinatrarb.com
シナトラのドキュメントから:
require 'sinatra'
get '/hi' do
"Hello World!"
end
次に、実行するだけです。
$ gem install sinatra
$ Ruby -rubygems hi.rb
== Sinatra has taken the stage ...
>> Listening on 0.0.0.0:4567
ブラウザで http://0.0.0.0:4567 にアクセスすると、「HelloWorld」が見つかります。
.。
これに加えて、Apacheまたは他のWebサーバーでの実行についても質問するので、新しいSinatraベースのアプリケーションをApacheまたはNginxにデプロイする方法について次のチュートリアルを確認することをお勧めします。
Apache: http://www.pastbedti.me/2009/11/deploying-a-sinatra-app-with-Apache-and-phusion-passenger-aka-mod_rack/ および http://www.giantflyingsaucer.com/blog/?p=1716
両方のチュートリアルが乗客を介したシナトラの実行をカバーしていることに注意してください( http://www.modrails.com/ -「modrails」の名前で延期しないでください:))、私は幸運に恵まれましたApacheとNginxでアプリをデプロイする際に使用します。
たとえば、.rbファイルをCGIスクリプトとして実行するようにApacheを構成してから、Shebang行を追加することができます(#!/path/to/your/Ruby
または多分 #!/usr/bin/env Ruby
)スクリプトの先頭。ただし、リクエストごとに新しいインタプリタが起動するため、最適ではありません。
Ruby Webサイトを実行するためのより一般的に使用される方法は乗客です: http://www.modrails.com/ インストールはそれほど難しくなく、使用します。これがApacheのドキュメントです: http://www.modrails.com/documentation/Users%20guide%20Apache.html#_deploying_a_Ruby_on_Rails_application
アプリケーションは有効なラックアプリケーションである必要があります。これが最小限のHelloWorldです(たとえば、/ appがアプリケーションのルートフォルダーであるとします)。
/app/config.ru
require 'rack'
require 'app'
run(app)
/app/app.rb
app = proc do |env|
[
# http status code
200,
# headers
{'Content-Type' => 'text/html'},
# html body
["<head><title>Test Page</title></head><body>Hello World !</body>"]
]
end
上記のファイルを保存し、サブフォルダー/ app/public(Ruby/Rails/sinatraアプリケーションを検出するために乗客が必要)を作成し、Apache構成でDocumentRootとして/ app/publicを使用します。
これは恐ろしいように見えるかもしれませんが、これは本番デプロイメント用です。開発では、実際のサーバーをいじりたくありません。
上記で指定したconfig.ruファイルを実行するために必要なのは次のとおりです。
$ gem install rack
$ rackup config.ru
または、本番システムに近づきたい場合:
$ gem install passenger
$ cd /app
$ passenger start
これにより、passengerを使用してnginxサーバーがインストールされ、アプリケーションが実行されます。
ほとんどの場合、ラックを直接使用することはありませんが、代わりにRuby on Rails、sinatra、または別のフレームワークを使用してhtmlを生成します(これらはすべて、以下のラックを使用してWebサーバーに共通のAPIを提供します) )。
Ruby1.9.2 +の簡単なコマンド。
Ruby -run -e httpd . -p 5000
この記事から http://til.justincampbell.me/start-an-http-server-with-Ruby-run/ 他の記事 https://Gist.github.com/ willurd/5720255
これをアプリのルートから実行します。
Ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
Mod_Rubyは良いと聞きました。とは異なり、#!/path/to/your/Ruby
、mod_Rubyは新しいRubyインタープリターを生成しません。