序章


シナトラを定義するためにいくつかの単語が選択された場合、それらは間違いなくインスピレーションおよび簡潔になります。 この小さいながらも注目に値する小さなプロジェクトは、さまざまなプログラミング言語やプラットフォームにまたがる、他の多くの同様のプロジェクトの作成への道を開きました。

「上品な」Web開発ライブラリSinatraを使用すると、Webアプリケーションを最初からすばやく構築できます。 非常に人気のあるRubyonRailsフレームワークとは異なり、Sinatraで作成されたアプリケーションは、Sinatraの宝石にのみ依存して、単一のファイルで構成できます。

このDigitalOceanの記事では、Sinatra Webアプリケーション開発ライブラリとともに、Ubuntu 13ドロップレットに公式のRubyインタープリター(v 2.1.0)の最新バージョンをインストールする方法を学習します。 その後、サンプルプロジェクトを作成し、実際の展開を続行します。

用語集


1. RubyとSinatraのインストール


  1. オペレーティングシステムの更新
  2. 不可欠なビルド/開発ツールの入手
  3. Rubyバージョンマネージャー(RVM)のインストール
  4. Ruby2.1.0のインストール
  5. Sinatraのインストール
  6. wwwユーザーグループとデプロイヤーユーザーの作成

2. Sinatraを使用して「Helloworld!」アプリケーションを作成する


  1. アプリケーションディレクトリ
  2. サンプルアプリケーションファイル
  3. アプリケーションのテスト(ラックアップ)

3. 展開


注:この記事は、2ピースのシナトラシリーズの最初の記事です。 これを終えた後、実際の展開について学ぶために、SinatraベースのRubyWebアプリケーションを展開する方法をチェックしてください。

RubyとSinatraのインストール


オペレーティングシステムの更新


チュートリアルは、VPSを準備することから始めます。つまり、デフォルトのコンポーネントを最新バージョンにアップグレードして、すべてが最新であることを確認します。

ソフトウェアソースリストを更新し、古いアプリケーションをアップグレードします。

aptitude    update
aptitude -y upgrade

不可欠なビルド/開発ツールの入手


ターゲットアプリケーションのインストールを続行する前に、デフォルトのパッケージマネージャーを使用して必須の開発ツールパッケージbuild-essentialをインストールします。 aptitude. このパッケージには、ソースから特定のものをインストールするために必要なツールが含まれています。

次のコマンドを実行してインストールします build-essential パッケージ:

aptitude install -y build-essential

次に、Gitなどの一般的に使用される開発およびデプロイメント関連のツールを取得します。

次のコマンドを実行して、一般的に使用される追加のツールをインストールします。

aptitude install -y cvs subversion git-core mercurial

Rubyバージョンマネージャー(RVM)のインストール


Rubyバージョンマネージャー(またはRVM)を使用すると、開発者はRubyの使用をすばやく開始し、Rubyを使用してアプリケーションを開発できます。

RVMを使用すると、Rubyの複数のバージョンを同時に操作できるだけでなく、gemsetsと呼ばれる仮想環境を作成および操作するための組み込みツールも付属しています。 RVMの助けを借りて、依存関係、パッケージ、およびデフォルトのRubyインストールがニーズに合わせて作成され、展開のさまざまな段階間で適切に維持される、完全に分離された自己完結型のgemsetをいくつでも作成できます。どこにいても同じように動作します。

注: gemsetの操作方法とRVMの使用方法の詳細については、記事RVMを使用してVPSでRubyのインストールと環境を管理する方法をご覧ください。

RVMをダウンロードしてインストールするには、次のコマンドを実行します。

curl -L get.rvm.io | bash -s stable

また、RVMシェルスクリプトを使用してシステム環境を作成するには、次の手順に従います。

source /etc/profile.d/rvm.sh

Ruby2.1.0のインストール


これからRuby2.1.0(または他のバージョン)で動作するために必要なのは、RVMをダウンロードしてシステム環境を構成した後、RVMによって処理されるソースからのRubyの実際のインストールだけです。

RVMを使用してソースからRuby2.1.0をインストールするには、以下を実行します。

rvm reload
rvm install 2.1.0

Sinatraのインストール


RVMにRubyをインストールすると、デフォルトで付属しているRubyGemsパッケージを使用して、システムにSinatraをダウンロードしてセットアップできます。 RubyGemsはデフォルトのRubyパッケージマネージャーであり、その機能において優れたツールです。

次のコマンドを実行して、gemを使用してSinatraをインストールします。

gem install sinatra

wwwユーザーグループとデプロイヤーユーザーの作成


すべてのインストールが完了したら、基本を理解し、LinuxグループとWebアプリケーションをホストするユーザーを作成します。 この目的のために、グループに次の名前を付けることができます。 www とユーザーとして deployer.

新しいユーザーグループを追加します。

# Usage: sudo addgroup [group name]
sudo addgroup www

新しいユーザーを作成し、このグループに追加します。

# Create a new user:
# Usage: sudo adducer [user name]
# Follow on-screen instructions to user-related
# information such as the desired password.
sudo adduser deployer

# Add the user to an already existing group:
# Usage: sudo adducer [user name] [group name]
sudo adduser deployer www

次に、でアプリケーションフォルダを作成します /var ディレクトリ:

sudo mkdir /var/www

そして、権限を設定します。

# Set the ownership of the folder to members of `www` group
sudo chown -R :www  /var/www

# Set folder permissions recursively
sudo chmod -R g+rwX /var/www

# Ensure permissions will affect future sub-directories etc.
sudo chmod g+s      /var/www

編集 /etc/sudoers テキストエディタnanoを使用してユーザーに deployer 将来の展開のためのsudo:

nano /etc/sudoers

ファイルを下にスクロールして、場所を見つけます root 定義されています:

..

# User privilege specification
root    ALL=(ALL:ALL) ALL

..

直後に以下を追加 root ALL=(ALL) ALL:

deployer ALL=(ALL:ALL) ALL

のこのセクション /etc/sudoers ファイルは次のようになります。

..

# User privilege specification
root     ALL=(ALL:ALL) ALL
deployer ALL=(ALL:ALL) ALL

..

CTRL + Xを押し、Yで確定して保存して終了します。

「Helloworld!」の作成シナトラによるアプリケーション


注:以下は、展開記事の例として使用することを目的とした、デモンストレーション用の2ページのSinatraベースのアプリケーションの作成に関する短いチュートリアルです。 Sinatraの操作に関するより深い知識を得るには、公式の Sinatra:GettingStartedドキュメントを確認してください。

アプリケーションディレクトリ


サンプルをホストするディレクトリを作成して、シナトラの旅を始めましょう Hello world! 応用。

次のコマンドを実行して、アプリケーションディレクトリを作成します。

mkdir /var/www/my_app
cd    /var/www/my_app

RACKは、ファイル階層に関して特定の仮定を行います。 したがって、アプリケーションファイルと一緒にさらに2つのディレクトリを作成する必要があります。 tmppublic.

それらを作成しましょう:

mkdir tmp
mkdir public
mkdir pids
mkdir logs

また、 restart.txt 後でアプリケーションサーバーで使用する場合:

touch tmp/restart.txt

最終的なアプリケーション構造:

/my_app                    # /var/www/my_app
   |-- /public             # Static files (and for Passenger server)
   |-- /tmp              
         |-- restart.txt   # Application restart / reload file
   |-- /pids               # PID files
   |-- /logs               # Log files
   |-- config.ru           # Rack file (for servers)
   |-- app.rb              # Application module

注:さまざまなRuby Webアプリケーションサーバーについて学び、 Rack とは何かを理解するには、記事 Ruby Webアプリケーション用の(Rack)Webサーバーの比較を確認してください。 ]。

サンプルアプリケーションファイル


これで、構築を開始できます Hello world! 応用。

次のコマンドを実行して、 app.rb アプリケーションディレクトリ内 my_app nanoテキストエディタの使用:

nano app.rb

以下のコードブロックをコピーして貼り付けます。

require 'rubygems'
require 'sinatra/base'

class MyApp < Sinatra::Base

  get '/' do
    'Hello world!'
  end

end

CTRL + Xを押し、Yで確定して、保存して終了します。

次に、 config.ru Webアプリケーションサーバーがプログラムの実行に使用するファイル。

次のコマンドを実行して、 config.ru アプリケーションディレクトリ内 my_app nanoテキストエディタの使用:

nano config.ru

以下のコードブロックをコピーして貼り付けます。

require File.expand_path('../app.rb', __FILE__)
use Rack::ShowExceptions
run MyApp.new    

CTRL + Xを押し、Yで確定して、保存して終了します。

次に、Gemfileを作成しましょう。

nano Gemfile

以下のコードブロックをコピーして貼り付けます。

source 'https://rubygems.org'
gem 'rack'
gem 'sinatra'

CTRL + Xを押し、Yで確定して、保存して終了します。

そして、を使用してこれらの宝石のインストールを実行します bundle:

bundle install

アプリケーションのテスト(ラックアップ)


アプリケーションをテストするには、次を使用してテストサーバーを実行するだけです。 rackup.

次のコマンドを実行して、テストサーバーを起動します。

rackup config.ru --port=8080

# Hello world!

# To turn off the test server, press CTRL+C

展開


Sinatraアプリケーションの作成の基本については説明しましたが、展開の目的で、開発用コンピューターマシンからのソースコードを処理して、アプリケーションをオンラインにします。 したがって、あなたは置く必要があります(すなわち アップロード)アプリケーションのリポジトリ(つまり ドロップレットのソースコード)。

Sinatraの導入に関する記事を続ける前に、これを実現する方法をいくつか紹介します。

  • SFTPの操作については、SFTPの使用方法の記事を参照してください。

  • FileZillaについて学ぶには、このテーマに関する記事FileZillaの使用方法を確認してください。

注:特定のサーバー設定を使用した展開では、ファイル/フォルダーのアクセス許可に注意してください。 実際のWeb展開については、SinatraベースのRubyWebアプリケーションを展開する方法に関する記事を確認してください。

投稿者: https ://twitter.com/ostezer ”> OS Tezer