Я ищу хорошее руководство по развертыванию приложения Rails 3.1.1 на сервере.И под добром я на самом деле имею в виду полный.Причина, по которой я публикую этот вопрос, заключается в том, что, хотя в Интернете существует множество учебных пособий (Google, блоги, книги, другие вопросы, связанные с переполнением стека и т. Д.), Кажется, что все они посвящены либо проблеме процесса развертывания.или сделайте некоторые предположения о среде развертывания, которые не соответствуют тому, что мне нужно.
Я понимаю, что для развертывания приложения Rails на сервере требуются различные программы и инструменты, которые необходимо настроить, и я всегда так или иначезастрять на явно "маленьких" вещах, которые меня очень расстраивают.
Итак, начнем с самого начала.Теперь у меня есть сервер, к которому я могу получить доступ через SSH и доменное имя, назовем его www.example.com .На сервере установлена свежая версия Ubuntu 10.04 x64, на которой установлен только пользователь, а именно root (через root я обращаюсь к серверу по SSH).Заметка!Не установлены Apache, Ruby, PHP, MySQL, cPanel или любая другая панель, только минимум, который поставляется с новой установкой.
Также на веб-сервере будет размещаться одно приложение, и база данных будет работать натот же компьютер.
Насколько мне известно, процесс развертывания приложения Rails следует следующим сценариям:
Я уже сделал это, используя RVM, используя многопользовательский процесс установки (просто потому, что у меня есть только пользователь root, и он делает это автоматически).Это, кажется, хорошо работает после этого, но у меня есть несколько вопросов:
Было бы более разумно устанавливать Ruby напрямую, а не через RVM (я думаю, может быть, с точки зрения эффективности - также RVM делает немногомагия за кулисами, модифицирующая некоторые файлы bash_profile способами, которые я не понимаю, и это как-то кажется инвазивным ...)?
Было бы более целесообразно установить в качестве отдельного пользователя через RVM (может быть какая-то безопасностьвозникают проблемы)?
- необходимые драгоценные камни
Теперь, когда установлен Ruby, какой наилучший начальный набор камней можно установить вдоль него?
Я установил только пакет, поэтому после загрузки приложения на сервер я могу запустить команду установки пакета, которая, в свою очередь, установит требуемые гемы приложения.
Вопрос - стоит ли устанавливатьрельсы драгоценный камень перед рукой?Есть ли какие-либо другие драгоценные камни, которые нужно установить?
Вот где мне становится сложно.Я пытаюсь использовать apache и mod-passenger для развертывания (они кажутся самыми популярными).Поэтому я установил веб-сервер apache, пассажирский гем и все связанные с ним зависимости (библиотеки, упомянутые в пассажире).
Теперь возникают проблемы.Первое, что связано с пользователем.Как работает Apache?Я имею ввиду под каждым пользователем?Если я установил и (пере) запустил его, используя пользователя root, будет ли он постоянно работать под пользователем root?Это плохо?Если да, я должен создать другого пользователя?Если да, то как?В какие группы я должен поместить нового пользователя, какие права он должен иметь (а именно, к каким папкам он должен иметь доступ).Как запустить apache в этом случае (под root, под этим пользователем добавить строку где-нибудь в файле конфигурации и т.*
Куда положить настройки сайта?Это нормально, чтобы положить его в apache.conf, или я должен создать новый файл на сайтах, доступных?Или я должен просто повторно использовать файл default , который там уже есть?Если на предыдущем шаге был создан новый пользователь, какие права он должен иметь по отношению к файлам конфигурации?
Кроме того ... где в конечном итоге поставить приложение рельсы? В какой папке это будет лучше? Где-то под домом? Может быть, в / var / www? Я хочу знать, как это повлияет на права процесса apache, обслуживающего приложение? (Обычно у меня возникают проблемы при обслуживании приложения, оно жалуется на то, что у него нет прав на определенную папку. Кроме того, при использовании новых конвейеров ресурсов - что я не совсем понимаю - создаются файлы активов, и они, похоже, не наследовать права родительской папки ...)
В качестве базы данных я использую MySQL, и установить его довольно просто. Вопрос, который у меня здесь, снова связан с пользователем. Должен ли я использовать специального пользователя для базы данных? Как MySQL фактически управляет пользователями (являются ли они внутренними, или они пользователи Linux или ...?). Должен ли пользователь базы данных быть таким же, как «веб-пользователь» сверху? Или это должен быть другой?
Здесь я действительно заблудился. У меня действительно есть проблемы с работой конвейера активов. Я проверил эпизод Railscasts, а также учебник на сайте rails, и я, кажется, теоретически понимаю эту вещь, но у меня есть проблемы на практике.
Таким образом, здесь возникнет вопрос: какие команды мне следует выполнить для предварительной компиляции ресурсов? (Попытка запустить рейк-ресурсы: прекомпиляция). Это нормально? Что я должен изменить в файле production.rb? Как сгенерированные ресурсы работают с веб-пользователем или пользователями базы данных, созданными выше? Я лично получаю проблему на этом этапе, а именно файлы журнала говорят, что некоторые CSS-файлы недоступны (например, у меня установлена библиотека jqplot в папке vendor / assets, и ее файлы недоступны - следует ли мне как-то добавить файл манифеста здесь ?).
Было бы замечательно, если бы кто-то мог указать мне на хорошую статью или ресурс, который объясняет все это. Основная область, в которой у меня возникают проблемы, заключается в том, как Apache, Passenger, Ruby, Rails и MySQL взаимодействуют с пользователем Linux. Как правильно настроить разрешения для папки приложения Rails? Как конвейер ресурсов влияет на это разрешение пользователя?
Спасибо