15 ответов:
как настроить и запустить приложение 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
делать абсолютной уверенности, что после того, как пассажир настроен ты отредактировал для отражения структура директорий. вы хотите указать DocumentRoot на ваш проект Rails / общую папку в любом месте
httpd.confфайл, который имеет такой вид dir:/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- это создаст secret_key, который вы можете добавить вconfig/secrets.yml. Ты можете скопируйте / вставьте это в config / secrets.yml ради того, чтобы все работало, хотя я бы рекомендовал вам не делать этого. Лично я делаю этот шаг, чтобы убедиться, что все остальное работает, а затем изменить его обратно и источник позже.
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake assets:precompileесли вы обслуживаете статические активы. Это будет толкать js, css, файлы изображений в .
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я, вероятно, пропустил что-то отвратительное, но это сработало я в прошлом.
теперь это будет
rails server -e productionили, более компактный
rails s -e productionОн работает для рельсов 3 + проектов.
Если вы используете пассажира, то по умолчанию для запуска в производстве, в вашем Apache conf:
<VirtualHost *:80> ServerName application_name.rails.local DocumentRoot "/Users/rails/application_name/public" RailsEnv production ## This is the default </VirtualHost>Если вы просто запускаете локальный сервер с помощью mongrel или webrick, вы можете сделать:
./script/server -e productionили в bash:
RAILS_ENV=production ./script/serverфактически переопределение константы RAILS_ENV в окружающей среде.rb, вероятно, должен быть вашим последним средством, так как он, вероятно, не будет оставаться установленным (см. еще один ответ Я дал на что)
Если mipadi предложение не работает, добавьте это в config / environment.РБ
# force Rails into production mode when # you don't control web/app server and can't set it the proper way ENV['RAILS_ENV'] ||= 'production'
rails s -e productionэто запустит сервер с
RAILS_ENV='production'.кроме того, вы должны установить путь активов в
production.rbconfig.serve_static_assets = trueбез этого ваши активы не будут загружены.
на рельсы 3
добавлять
Rails.env = ActiveSupport::StringInquirer.new('production')в приложение.РБ иrails sвремениrails server -e productionmodule BlacklistAdmin class Application < Rails::Application config.encoding = "utf-8" Rails.env = ActiveSupport::StringInquirer.new('production') config.filter_parameters += [:password] end end
Это не очень хороший способ запустить rails server в производственной среде с помощью "rails server-e production", потому что тогда rails работает как однопоточное приложение и может отвечать только на один HTTP-запрос за раз.
Лучшая статья о производственной среде для rails-это Производственные Среды-Рельсы 3
для сервера по умолчанию: rails S-e production
для порта сервера костюма: продукция рельсов s-P [порта] - e, например. рейлинги с-п 3002 -е производства
по умолчанию сервер работает в среде разработки:
$ rails sЕсли вы работаете в производственной среде:
$ rails s -e productionили$ RAILS_ENV=production rails s
пожалуйста, убедитесь, что вы сделали ниже в вашей среде.rb файл.
ENV ['RAILS_ENV'] / / = 'производство'
Если ваше приложение работает в среде общего хостинга или phushion passenger, вам может потребоваться внести изменения .httaccess (внутри общей папки) и установить режим как производство.
Comments