How to run a simple ruby script in any web server (Apache or Mongrel or any thing else)

前端 未结 7 848
半阙折子戏
半阙折子戏 2021-02-05 06:20

It seems very funny to me that when I search something related ruby, all ruby on rails related results popped up. So nobody using raw ruby anymore?

However, I am new to

7条回答
  •  太阳男子
    2021-02-05 06:51

    The more commonly used way of running a ruby website is passenger: http://www.modrails.com/ It is not really hard to install and you use, here is he doc for apache: http://www.modrails.com/documentation/Users%20guide%20Apache.html#_deploying_a_ruby_on_rails_application

    Your application must be a valid rack application, here is a minimal hello world (let's say /app is your application's root folder):

    /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
        ["Test PageHello World !"]
      ]
    end
    

    Save the files above and create a subfolder /app/public (required by passenger to detect a ruby/rails/sinatra application) and use /app/public as DocumentRoot in your apache config.

    This may look scary but this is for production deployment, in development your really don't want to mess with a real server.

    All you need to run the config.ru file I gave above is:

    $ gem install rack
    $ rackup config.ru
    

    Or if you want to be closer to your production system:

    $ gem install passenger
    $ cd /app
    $ passenger start
    

    which will install you an nginx server with passenger and run your application.

    In most case you will never use rack directly but instead use ruby on rails, sinatra or another framework to generate the html for you (they all use rack below now to provide a common api with the webservers).

提交回复
热议问题