我在互联网上搜索了一个" Hello,World"在Ruby中为Webrick键入程序,但找不到任何有效的程序。我发现this guide on SO但是因为我的生活无法让它发挥作用。
咨询Ruby Documentation for Webrick让我了解了一些代码片段,这些代码片段让我朝着正确的方向前进。没有易于理解的教程,所以我想在SO上添加我的答案。
我在没有Apache或Nginx的情况下使用Ubuntu 14.04,并希望我的服务器用于虚拟主机。默认情况下,Webrick并不会同时响应请求,但对我而言,除了占用空间小之外,这还是一个优势。我希望在没有Rails框架的情况下让它工作更轻松。
答案 0 :(得分:2)
首先,我使用Ubuntu软件包管理器安装了Ruby。如果您使用的是CentOS或其他Linux发行版,则可以将此步骤调整为特定的包管理器。还要确保Web服务器上的端口80已打开。可以通过Webrick获得SSL,但此时我没有选择。
sudo apt-get install ruby
这是我使用的名为myapp.rb
的脚本。我把它/var/www/myapp
。理想情况下,我认为它不应该在文档根目录中。您还应该创建一个特殊的用户和组来运行脚本以提高安全性(我没有在这里概述这些步骤)
require 'webrick'
server = WEBrick::HTTPServer.new(:Port => 80,
:SSLEnable => false,
:DocumentRoot => '/var/www/myapp',
:ServerAlias => 'myapp.example.com')
server.mount_proc '/' do |req, res|
res.body = 'Hello, world!'
end
trap 'INT' do server.shutdown end
server.start
上面的require
语句告诉Ruby在运行程序时包含Webrick类。该脚本的第二行使用以下选项创建Webrick实例:
/var/www/myapp
myapp.example.com
当然,您必须配置您的特定域名DNS'。 server.mount_proc
告诉Ruby在文档根目录中提供响应“Hello,world”。如果你有生命,我想你可以在那里指定一个子目录。上面的Ruby Webrick文档提供了相关信息。
以trap
开头的行表示可以使用Ctrl-C停止Web服务器。要启动脚本,我在SSH命令行输入以下内容:
ruby myapp.rb