Развертывание нескольких приложений Rails в смешанной (с PHP и другими приложениями Ruby) среде - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть Linode (Ubuntu 9.10, но обновление не вызывает проблем), где я запускаю несколько приложений PHP и у меня запущено приложение Sinatra и Rails 2. Я пытался развернуть несколько новых приложений Rails (3), но при этом сломал почти все:).

Мои требования просты:

  • PHP-приложения делают требование «LAMP» обязательным, даже если оно работает на другом порте: 80, за каким-то прокси все в порядке.
  • Я хочу запустить несколько приложений Rails3 и Rails2.
  • Мне нужно использовать разные версии драгоценных камней в этих приложениях.

  • Дополнительные службы, такие как SOLR, MongoDB, MySQL и Resque, установлены и работают, поэтому в настоящее время это не проблема, но, тем не менее, требование.

Раньше у меня было только одно приложение Rails и простое приложение Sinatra, стоящее за Phusion Passenger, драгоценные камни которого были установлены по всему миру. При представлении приложения на Rails 3 могут возникнуть конфликты между версиями, поэтому я установил RVM, но это серьезно сломало существующее приложение.

Пример проблем, с которыми я сталкиваюсь: Существующее приложение - Tracks , в котором все драгоценные камни упакованы в vendor / gems, некоторые из которых недоступны на rubygems.org. Я не мог заставить RVM распознавать эти драгоценные камни. Я продолжаю работать от одной проблемы (RVM не распознает вендора / гемов, рейк-гемов: установка не устанавливается, конфликты между версиями Rails и rubygems и т. Д.) В другие. Я не ищу решения для каждого вопроса в этом вопросе.

Новые приложения Rails 3 предпочитают Ruby 1.9, но Passenger установлен на ruby ​​1.8.7. Мне удалось понизить версию этих приложений Rails3, чтобы они работали на 1.8.7, но для меня было бы предпочтительнее решение, позволяющее мне использовать любую версию ruby, наиболее подходящую для приложения.

Как бы вы настроили такой сервер? Вы бы изначально настроили такой сервер? Существуют ли доступные коммерческие решения для этого? Или я должен искать решения, такие как виртуальная машина для каждого приложения? О нагрузке и использовании: это в основном для личного и демонстрационного использования: поэтому каждое приложение должно обслуживать до 800 просмотров страниц в день: очень, очень низкое использование (фактическое развертывание для приложений с интенсивным использованием и клиентских проектов выполняется на выделенных серверах) .

1 Ответ

0 голосов
/ 05 апреля 2011

Для Rails 2/3: не простая задача, но ее можно выполнить: http://jeremy.wordpress.com/2010/08/19/ruby-rvm-passenger-rails-bundler-in-development/ Просто убедитесь, что вы используете последнюю версию rvm, passenger.

Для PHP и Rails я используюnginx с пассажиром и работает нормально.У меня есть конфигурация nginx php по умолчанию и пассажирские настройки по умолчанию для Rails.

...