Как настроить и запустить приложение Rails 4 в рабочем режиме (пошагово) с использованием Apache и Phusion Passenger:
Обычно вы можете войти в свой проект Rails, rails s
, и получить версию для разработки своего приложения на http://something.com:3000. Режим производства немного сложнее настроить.
Я какое-то время возился с этим, поэтому я решил написать это новичкам (таким как я). Есть несколько небольших твиков, которые распространены по всему интернету, и подумал, что это может быть проще.
Обратитесь к этому руководству для настройки ядра сервера (CentOS 6, но оно должно применяться почти ко всем разновидностям Linux): https://www.digitalocean.com/community/tutorials/how-to-setup-a-rails-4-app-with-apache-and-passenger-on-centos-6
Убедитесь, что после настройки Passenger вы отредактировали файл /etc/httpd/conf/httpd.conf
, чтобы он отражал вашу структуру каталогов. Вы хотите указать DocumentRoot на вашу общую папку проекта / Rails В любом месте файла httpd.conf
, который имеет такой тип директории: /var/www/html/your_application/public
необходимо обновить, иначе все будет очень неприятно. Я не могу подчеркнуть это достаточно.
Перезагрузите сервер (или Apache по крайней мере - service httpd restart
)
Войдите в папку проекта Rails /var/www/html/your_application
и начните миграцию с rake db:migrate
. Убедитесь, что таблица базы данных существует, даже если вы планируете добавить таблицы позже (это также является частью шага 1).
RAILS_ENV=production rake secret
- это создаст секретный ключ, который вы можете добавить к config/secrets.yml
. Вы можете скопировать / вставить это в config / secrets.yml ради запуска, хотя я бы порекомендовал вам этого не делать. Лично я делаю этот шаг, чтобы убедиться, что все остальное работает, затем измените его обратно и отправьте позже.
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake assets:precompile
, если вы обслуживаете статические активы. Это поместит файлы js, css, image в папку /public
.
RAILS_ENV=production rails s
На этом этапе ваше приложение должно быть доступно по http://something.com/whatever
вместо :3000
. Если нет, то passenger-memory-stats
и посмотрите, есть ли запись типа 908 469.7 MB 90.9 MB Passenger RackApp: /var/www/html/projectname
Я, вероятно, пропустил что-то отвратительное, но это работало для меня в прошлом.