Установка 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 restart3 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Закомментируйте или удалите все в этом файле, кроме следующих строк:
| |
Затем перезапустите Apache:
/etc/init.d/httpd restart4 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 restart5 Использование mod_ruby
Теперь предположим, что вы создали веб-сайт в ISPConfig с корневым каталогом документа /var/www/web1/web. Если вы включите Ruby для этого веб-сайта, ISPConfig добавляет что-то вроде этого в конфигурацию vhost Apache веб-сайта:
| |
(Если вы не используете 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 Ссылки
- mod_ruby: http://www.modruby.net
- Ruby: http://www.ruby-lang.org
- ISPConfig: http://www.ispconfig.org
Get new posts in your inbox
No spam. Unsubscribe anytime.