Я упоминал о выпуске Phusion’s Passenger (AKA mod_rails) — модуля Apache, который может запускать несколько сайтов Rails, как и PHP. Значение этого довольно огромно. До сих пор для запуска rails требовалось запускать Mongrel за прокси-сервером Apache или использовать FastCGI (или, предпочтительно, fcgid).
Хотя Mongrel проделал отличную работу, я никогда не был большим поклонником двух точек отказа — проблемы с Apache или Mongrel сделали бы ваш сайт недоступным. Мало того, что для увеличения емкости вашей системы необходимо добавить несколько экземпляров mongrel, каждый со своим собственным портом и каждый со своей собственной служебной памятью, что может быть очень запутанным для провайдеров виртуального хостинга.
Пассажир позволит провайдерам хостинга установить один модуль Apache, требуя, чтобы клиент просто загрузил свое приложение — никаких проблем с разрешениями или проблемных файлов конфигурации. Однако это также очень полезно для разработчика: вместо запуска script/server
при тестировании приложения вы можете установить локальную версию Apache, настроить несколько виртуальных хостов и получить мгновенный доступ к тестовым сайтам.
В настоящее время Passenger работает только в средах типа * NIX, например, Linux и OSX. Команда Phusion приложила немало усилий, чтобы сделать установку максимально простой. Вот основные шаги:
- Установите Apache (обратитесь к вашему поставщику за инструкциями)
- Запустите
gem install passenger
- Запустите
passenger-install-apache2-module
Теперь пассажир должен задать вам несколько вопросов, которые, если вы ответите правильно, должны завершить установку.
Перезапустите Apache и создайте файл виртуального хоста, который указывает на ваше приложение Rails, и вы ушли! Следующий файл виртуального хоста скажет Apache ответить на URL http: //test.localdomain с помощью приложения Rails в / home / sites / test.
<VirtualHost 127.0.0.1:80> Имя_сервера test.localdomain DocumentRoot / home / sites / test </ VirtualHost>
Если вы используете passenger для разработки, убедитесь, что в вашем файле apache2.conf есть строка RailsEnv development
.