2012-11-18 28 views
7

Làm cách nào để triển khai ứng dụng Rails cho VPS (máy chủ riêng ảo) hoặc máy chủ chuyên dụng? Nó sẽ là tốt đẹp để có một dễ dàng để làm theo hướng dẫn.Làm cách nào để triển khai ứng dụng Rails cho VPS (hoặc máy chủ chuyên dụng)?

Tôi biết về các tập lệnh để tự động hóa quy trình, nhưng tôi nghĩ tốt hơn là nên kiểm soát mọi thứ để hiểu rõ hơn về quy trình.

+0

tôi đã viết một ebook về chủ đề này (thiết lập một máy chủ từ đầu và triển khai một ứng dụng bằng tay bằng cách sử dụng nginx/Unicorn/MySQL/rbenv stack). Nó được thiết kế để giúp bạn hiểu mọi thứ trong quy trình này hoạt động như thế nào dưới mui xe và nó miễn phí cho những người trong danh sách gửi thư của tôi - bạn có thể tải nó ở đây (http://www.relativkreativ.at/ebook). –

Trả lời

43

tôi đã triển khai thành công một ứng dụng nặng Rails để Linode hoặc Digital Dương, sử dụng các công nghệ này:

  • rbenv cho việc cài đặt của Ruby
  • nginx + Hành khách cho máy chủ ứng dụng
  • PostgreSQL cho máy chủ cơ sở dữ liệu
  • Capistra không để tự động hóa triển khai (cấu hình này đầu tiên trên máy dev của bạn với IP máy chủ và các thiết lập của bạn, tôi sẽ không bao gồm nó ở đây)

Đây là những bước mà làm việc cho tôi:

Thiết lập ảo máy

tạo một máy ảo mới

Thực hiện theo các hướng dẫn thiết lập lưu trữ của bạn, là Linode hoặc Digital Dương, để tạo ra các nút và thiết lập nó.

Thiết lập ngày

  • dpkg-reconfigure tzdata

Cập nhật gói

  • apt-get update
  • apt-get upgrade

an

Tạo người dùng

  • adduser triển khai
  • usermod -a -G sudo triển khai
  • logout

Thiết lập SSH key-authentication

On địa phương:

  • ssh-keygen
  • bản sao chìa khóa công cộng:

Trên máy chủ:

  • ssh [email protected]
  • kích hoạt bí danh để liệt kê các file:
    • vim ~/.bashrc
    • bỏ ghi chú tất cả các bí danh
  • mkdir .ssh
  • id_rsa mv. pub .ssh/authorized_keys
  • chown -R triển khai: triển khai .ssh
  • chmod 700 .ssh
  • chmod 600.ssh/authorized_keys
  • logout (kiểm tra xác nhận mới)

Thiết lập SSH

  • sudo vim/etc/ssh/sshd_config
  • Chuyển PermitRootLogin để không có dịch vụ
  • sudo ssh restart

Thiết lập tường lửa

Thiết lập fail2ban

Thiết lập nếu bạn có đủ tự do bộ nhớ, vì nó có xu hướng ăn nó.

  • sudo apt-get install -y fail2ban

cài đặt của Ruby

Cài đặt Git

  • sudo apt-get install -y git

Install rbenv

Cài đặt của Ruby

  • sudo apt-get install -y curl gnupg xây dựng cần thiết
  • rbenv cài đặt -l (tìm kiếm phiên bản mới nhất)
  • rbenv cài đặt 2.3.3 (hoặc phiên bản mới nhất hiện có tại thời điểm này)
  • rbenv toàn cầu 2.3.3
  • rbenv rehash
  • vim .gemrc
    • Dán này: đá quý: --no-tài liệu

máy chủ cài đặt

Cài đặt nginx + Hành khách

Cài đặt PostgreSQL

Cài đặt thư viện

Cài đặt Node.js

cần thiết để sẵn biên dịch tài sản.

  • sudo apt-get install -y nodejs

Install bundler

  • get install bundler
  • rbenv rehash

Cài đặt ứng dụng

Tạo người sử dụng trong PostgreSQL

  • tên CreateUser --pwprompt
  • createdb -Ousername -Eutf8 db_name
  • thử nghiệm nó:
    • psql db_name --user tên --password

Triển khai mã * Trên máy chủ: * sudo mkdir -p /srv/yoursite.com * sudo chown triển khai: triển khai /srv/yoursite.com * Trên máy dev của bạn: * bó exec triển khai sản xuất mũ: kiểm tra (nó sẽ ném một lỗi vì nó không tìm thấy cơ sở dữ liệu) * Trên máy chủ: * cd /srv/yoursite.com/shared/config * vim database.yml (dán cấu hình cơ sở dữ liệu của bạn) * vim secrets.yml (dán cấu hình bí mật của bạn) * Trên máy tính cá nhân của bạn: * triển khai sản xuất mũ bó triển khai * sản xuất mũ exec mỗi khi: cập nhật ate_crontab

Configure logrotate

+3

Tôi yêu bạn :) Cảm ơn rất hữu ích! – wpp

+0

Hướng dẫn tuyệt vời cho phần tôi cần triển khai, đặc biệt là với các tài sản biên dịch trước và sau khi không tìm được rvm_shell –

+0

wow .... Cảm ơn David – Dave

1

tôi triển khai ứng dụng ray của tôi đến các máy chủ sản xuất của tôi (đó là một cụm) với Capistrano trước đây, nhưng tôi thấy rằng Capistrano là một chút phức tạp và đôi khi thậm chí trở thành nhà sản xuất rắc rối ... Vì vậy, tôi đã viết kịch bản triển khai của tôi bằng bash shell script.

Tôi đã đặt nó trên github với một hướng dẫn ngắn gọn: deploy_rails

Các vấn đề liên quan