如何在各种Linux分发版上安装mod_ruby用于ISPConfig(2.2.20及以上版本)

如何安装mod_ruby在各种Linux发行版上使用ISPConfig(2.2.20及以上)

版本1.0
作者:Falko Timme

从版本2.2.20开始, ISPConfig内置了对Ruby的支持。 而不是使用CGI / FastCGI,ISPConfig取决于服务器的Apache中可用的mod_ruby。 本文介绍如何在ISPConfig支持的各种发行版上安装mod_ruby。

我不会保证这将为您工作!

1 Debian Etch / Ubuntu 7.10

在Debian Etch和Ubuntu 7.10上,我们所要做的就是运行(以root用户身份):

apt-get install libapache2-mod-ruby

根本不需要配置。

2 Fedora 8 / CentOS 5.1

对于Fedora 8和CentOS 5.1,没有可用的mod_ruby包,因此我们必须自己编译。 首先我们安装一些先决条件:

yum install httpd-devel ruby ruby-devel

接下来我们下载并安装mod_ruby,如下所示:

cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz
tar zxvf mod_ruby-1.2.6.tar.gz
cd mod_ruby-1.2.6/
./configure.rb --with-apr-includes=/usr/include/apr-1
make
make install

最后,我们必须将mod_ruby模块添加到Apache配置中,因此我们创建文件/etc/httpd/conf.d/ruby.conf ...

vi /etc/httpd/conf.d/ruby.conf
LoadModule ruby_module modules/mod_ruby.so

...并重新启动Apache:

/etc/init.d/httpd restart

3 Mandriva 2008.0

Mandriva 2008.0有一个mod_ruby包,我们可以安装如下:

urpmi apache-mod_ruby

该软件包附带一个mod_ruby配置,可以在全球范围内为所有网站启用mod_ruby。 因此,我们现在必须禁用它,以便可以在每个网站的基础上在ISPConfig中启用它:

vi /etc/httpd/modules.d/20_mod_ruby.conf

注释掉或删除该文件中的所有内容,但以下行除外:

<IfDefine HAVE_RUBY>
    <IfModule !mod_ruby.c>
        LoadModule ruby_module  extramodules/mod_ruby.so
    </IfModule>
</IfDefine>

然后重新启动Apache:

/etc/init.d/httpd restart

4 OpenSUSE 10.3

OpenSUSE 10.3没有一个mod_ruby包,因此我们必须手动编译它。 首先我们安装先决条件:

yast -i apache2-devel ruby ruby-devel

之后我们建立mod_ruby如下:

cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz
tar zxvf mod_ruby-1.2.6.tar.gz
cd mod_ruby-1.2.6/
./configure.rb --with-apr-includes=/usr/include/apr-1
make
make install

要启用mod_ruby,我们打开/ etc / sysconfig / apache2并将ruby添加到APACHE_MODULES行,例如:

vi /etc/sysconfig/apache2
[...]
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php5 rewrite ruby"
[...]

之后我们跑

SuSEconfig

并重新启动Apache:

/etc/init.d/apache2 restart

5使用mod_ruby

现在假设您已经在ISPConfig中使用文件root / var / www / web1 / web创建了一个网站 。 如果您为该网站启用Ruby,则ISPConfig会将这样的内容添加到网站的Apache vhost配置中:

<IfModule mod_ruby.c>
  <Directory /var/www/web1/web>
    Options +ExecCGI
  </Directory>
  RubyRequire apache/ruby-run
  #RubySafeLevel 0
  <Files *.rb>
    SetHandler ruby-object
    RubyHandler Apache::RubyRun.instance
  </Files>
  <Files *.rbx>
    SetHandler ruby-object
    RubyHandler Apache::RubyRun.instance
  </Files>
</IfModule>

(如果不使用ISPConfig,那么您当然可以手动将其添加到您的vhost配置,但不要忘了调整路径,然后重新启动Apache。)

要查看mod_ruby是否正常工作,我们创建Ruby文件/var/www/web1/web/hello_world.rb

vi /var/www/web1/web/hello_world.rb
# The Greeter class
class Greeter
  def initialize(name)
    @name = name.capitalize
  end

  def salute
    puts "Hello #{@name}!"
  end
end

# Create a new object
g = Greeter.new("world")

# Output "Hello World!"
g.salute

该文件必须是可执行的 ,所以我们运行:

chmod 755 /var/www/web1/web/hello_world.rb

现在你可以在浏览器中调用该文件 如果一切顺利,应该显示一个Hello World! 信息。

6链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏