Установка Ruby · 2 min read · Nov 20, 2025

Как установить mod_ruby на различных дистрибутивах Linux для использования с ISPConfig (2.2.20 и выше)

Как установить mod_ruby на различных дистрибутивах Linux для использования с ISPConfig (2.2.20 и выше)

Версия 1.0
Автор: Фалко Тимме

Начиная с версии 2.2.20, ISPConfig имеет встроенную поддержку Ruby. Вместо использования CGI/FastCGI, ISPConfig зависит от наличия mod_ruby на сервере Apache. Эта статья объясняет, как установить mod_ruby на различных дистрибутивах, поддерживаемых ISPConfig.

Я не даю никаких гарантий, что это сработает для вас!

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

Закомментируйте или удалите все в этом файле, кроме следующих строк:

| LoadModule ruby_module extramodules/mod_ruby.so |

Затем перезапустите 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 с корневым каталогом документа /var/www/web1/web. Если вы включите Ruby для этого веб-сайта, ISPConfig добавляет что-то вроде этого в конфигурацию vhost Apache веб-сайта:

| Options +ExecCGI RubyRequire apache/ruby-run #RubySafeLevel 0 SetHandler ruby-object RubyHandler Apache::RubyRun.instance SetHandler ruby-object RubyHandler Apache::RubyRun.instance |

(Если вы не используете ISPConfig, то, конечно, вы можете добавить это вручную в свою конфигурацию vhost, но не забудьте отрегулировать пути и перезапустить Apache после этого.)

Чтобы проверить, работает ли mod_ruby, мы создаем Ruby файл /var/www/web1/web/hello_world.rb:

vi /var/www/web1/web/hello_world.rb

| # Класс Greeter class Greeter def initialize(name) @name = name.capitalize end def salute puts "Hello #{@name}!" end end # Создаем новый объект g = Greeter.new("world") # Выводим "Hello World!" g.salute |

Файл должен быть исполняемым, поэтому мы выполняем:

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

Теперь вы можете вызвать файл в браузере; если все пройдет хорошо, он должен отобразить сообщение Hello World!

6 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.