Одна из крайних глав второй части книги по Rails 4.2 посвящена развертыванию и эксплуатации веб-приложения.
В ней книга про гибкую разработку веб-приложений на Rails 4.2 сообщает, что нужно скопировать весь каталог содержащий приложение Depot, с вашей первой машины. Затем перейти в этот каталог и воспользоваться программой bundler:
bundler install
Прим. Можно bundle install --path vendor/bundle
Для проверки работоспособности приложения:
rake about
rake test
rails server
Далее в книге идет установка Passenger и только в "чем заняться на досуге" - "попробуйте вместо пары Phusion Passenger и Apache httpd использовать пару Unicorn и nginx".
Единорога не будет и здесь, а будет пример настройки обратного прокси-сервера для nginx:
/etc/nginx/sites-enabled/rails.conf
server {
listen 80;
server_name depot.example.com;
access_log /var/log/nginx/rails.access.log;
error_log /var/log/nginx/rails.error.log;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
Затем в книге идет глава про использование MySQL в качестве базы данных. Здесь же вместо MySQL будет PostgreSQL. Точнее, будет всего лишь ссылка на статью "PostgreSQL - установка и настройка сервера" в Calculate Wiki. Там все подробно написано о том, как создать базу данных и пользователя для работы с ней, как к ней подключиться.
Пример настройки авторизации
/etc/postgresql/9.5/main/pg_hba.conf
# Database administrative login by Unix domain socket
# local all postgres peer
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
# local all all peer
# local all all password
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# host all all 127.0.0.1/32 password
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
# local replication postgres peer
# host replication postgres 127.0.0.1/32 md5
# host replication postgres ::1/128 md5
Вместо указания на gem-пакет mysql в Gemfile понадобится добавить указание на gem-пакет postgresql.
group :production do
gem 'pg'
end
Затем книга рекомендует установить gem-пакет с помощью команды bundle install. В книге "сначала может потребоваться найти и установить разработочные файлы базы данных MySQL для вашей операционной системы. К примеру, при работе под Ubuntu понадобится установить libmysqlclient-dev".
Я же здесь в свою очередь упомяну еще об одном таком файле - ruby-dev.
"Файл config/production.yml содержит информацию о подключениях баз данных". Более подробную информацию см. на github.com на первой странице в выдаче яндекса по запросу "rails postgresql database.yml", которая называется "Sample config/database.yml from Rails. Postgres, MySQL, and SQLite".
"Далее мы применим наши миграции", - бодро заявляет книга. И дает команду rake db:setup RAILS_ENV="production". Хотя есть еще одна команда rake db:migrate RAILS_ENV="production".
Первая часть главы заканчивается парой абзацев со словами "Ну, все готово к работе".
Здесь же будут вдобавок еще пара команд:
RAILS_ENV=production rake assets:precompile и RAILS_ENV=production rails server. На самом деле, это не все действия, выполненные мною для развертывания веб-приложения depot. Но многие из них.
И, конечно, нельзя здесь забыть sqlite3 -line db/development.sqlite3 "select * from users", которая выведет что-то вроде этого
id = 1
name = admin
password_digest = $2a$10$zEgubtI7lweS4i9urGlNGegwbyyEyie4K8rI/tzi.drX1o/DN.3de
created_at = 2018-05-28 09:38:40.852160
updated_at = 2018-05-28 09:40:17.278264
id = 2
name = dave
password_digest = $2a$10$nzd1SGOL.Ua7vxSROm7hhOVkXu8Vj8ncuJlDdqU9g4ZaNpYq.CmvW
created_at = 2018-05-28 10:56:47.233958
updated_at = 2018-05-28 10:56:47.233958
конец