前書き
このチュートリアルでは、https://www.phusionpassenger.com [Phusion Passenger]をRailsに優しいWebサーバーとしてインストールする方法を示します。これは、インストール、構成、および保守が簡単です。 Ubuntu 14.04のApacheに統合します。 このチュートリアルの終わりまでに、テスト用のRailsアプリケーションがDropletにデプロイされます。
ApacheよりもNginxを好む場合は、https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-passenger-and-nginx-on-ubuntu-14をご覧ください。 -04 [Ubuntu 14.04でPassengerとNginxを使用してRailsアプリを展開する方法]リンクをクリックします。
前提条件
最初のステップは、新しいドロップレットを作成することです。 小規模なサイトでは、512 MBプランを使用するだけで十分です。
メモリ消費量が少ないため、32ビットUbuntuイメージを選択することをお勧めします(64ビットプログラムは、32ビット版よりも約50%多くのメモリを使用します)。 ただし、より大きなマシンが必要な場合、または4 GBを超えるRAMにアップグレードする可能性がある場合は、64ビットバージョンを検討する必要があります。
必ずUbuntu 14.04を使用してください。 この記事の執筆時点では、Ubuntu 14.10にはまだPassenger APTリポジトリがありません。 さらに、Ubuntu 14.04には追加の利点があります。「長期サポート」の略であるLTSバージョンです。LTSリリースは安定したプラットフォームとして設計されており、長期間使用できます。 Ubuntuは、LTSリリースが5年間セキュリティアップデートおよびその他のバグ修正を受け取ることを保証します。
-
Ubuntu 14.04 32ビットドロップレット
手順1-Sudoユーザーを追加する
ドロップレットが作成されたら、システムユーザーを作成し、サーバーを保護する必要があります。 これを行うには、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 [初期サーバー設定]の記事に従ってください。
このチュートリアルに従う場合は、sudo特権を持つ基本ユーザーが必要です。 この例では、* rails *ユーザーを使用します。 ユーザーに別の名前がある場合は、次の手順で正しいパスを使用していることを確認してください。
ステップ2(オプション)-ドメインのセットアップ
サイトが確実に表示されるようにするには、DNSレコードを設定して、ドメイン名を新しいサーバーに向ける必要があります。 詳細については、https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean [ホスト名の設定]のリンクをクリックしてください。
ただし、IPアドレスを介してサイトにアクセスできるため、この手順はオプションです。
ステップ3-Rubyをインストールする
ソースから手動でRubyをインストールします。
何かを行う前に、更新を実行して、インストールするすべてのパッケージが最新であることを確認する必要があります。
sudo apt-get update
次に、いくつかのライブラリと他の依存関係をインストールします。 これにより、インストールが可能な限りスムーズになります。
sudo apt-get install build-essential libssl-dev libyaml-dev libreadline-dev openssl curl git-core zlib1g-dev bison libxml2-dev libxslt1-dev libcurl4-openssl-dev libsqlite3-dev sqlite3
Rubyソースファイル用の一時フォルダーを作成します。
mkdir ~/ruby
新しいフォルダーに移動します。
cd ~/ruby
最新の安定したRubyソースコードをダウンロードします。 これを書いている時点では、これはバージョン2.1.4です。 現在の最新バージョンはhttps://www.ruby-lang.org/en/downloads/[Ruby website]から入手できます。 新しいバージョンが利用可能な場合は、次のコマンドのリンクを置き換える必要があります。
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.4.tar.gz
ダウンロードしたファイルを解凍します。
tar -xzf ruby-2.1.4.tar.gz
抽出されたディレクトリを選択します。
cd ruby-2.1.4
スクリプトを実行してください。 依存関係をチェックして新しい* Makefile *を作成するため、これには時間がかかります。これには、コードをコンパイルするために必要な手順が含まれます。
./configure
-
Makefile *を使用して実行可能プログラムをビルドするユーティリティを実行します。 この手順には少し時間がかかる場合があります。
make
次に、パラメーターを指定して同じコマンドを実行します。 コンパイルされたバイナリをフォルダにコピーしようとします。 この手順では、このディレクトリに書き込むためにルートアクセスが必要です。
sudo make install
これで、Rubyがシステムにインストールされます。 次のコマンドを使用して確認できます。コマンドを実行すると、Rubyバージョンが出力されます。
ruby -v
Rubyのインストールが成功した場合、次のような出力が表示されます。
ruby 2.1.4p265 (2014-10-27 revision 48166) [x86_64-linux]
最後に、一時フォルダーを削除できます。
rm -rf ~/ruby
ステップ4-Apacheのインストール
Apacheをインストールするには、次のコマンドを入力します。
sudo apt-get install apache2
はい、それだけです!
ステップ5-乗客のインストール
まず、リポジトリサーバーのPGPキーをインストールします。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
APTソースファイルを作成します。
sudo nano /etc/apt/sources.list.d/passenger.list
Passengerリポジトリをファイルに追加するには、次の行を挿入します。
deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main
-
CTRL + X を押して終了し、 Y *と入力してファイルを保存し、ENTERを押してファイルの場所を確認します。
このファイルの所有者と権限を変更して、* root *へのアクセスを制限します。
sudo chown root: /etc/apt/sources.list.d/passenger.list
sudo chmod 600 /etc/apt/sources.list.d/passenger.list
APTキャッシュを更新します。
sudo apt-get update
最後に、Passengerをインストールします。
sudo apt-get install libapache2-mod-passenger
Passenger Apacheモジュールを確認してください。すでに有効になっている可能性があります:
sudo a2enmod passenger
Apacheを再起動します。
sudo service apache2 restart
この手順により、Rubyバージョンが古いバージョンに上書きされます。 これを解決するには、間違ったRubyの場所を削除して、正しいRubyバイナリファイルへの新しいシンボリックリンクを作成します。
sudo rm /usr/bin/ruby
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
ステップ6-デプロイ
この時点で、独自のRailsアプリケーションがあれば準備できます。 既存のアプリをデプロイする場合は、プロジェクトをサーバーにアップロードして、「+ / etc / apache2 / sites-available / default +」の手順にスキップできます。
このチュートリアルでは、Dropletで新しいRailsアプリを直接作成します。 新しいアプリを作成するにはgemが必要です。
ユーザーのホームディレクトリに移動します。
cd ~
追加のドキュメントなしでgemをインストールすると、インストールが高速になります。 これにはまだ数分かかります。
sudo gem install --no-rdoc --no-ri rails
これで、新しいアプリを作成できます。 この例では、名前を使用します。 別の名前を使用する場合は、このセクションの他のコマンドとファイルのパスを必ず更新してください。
後で手動で実行するため、Bundlerのインストールはスキップします。
rails new testapp --skip-bundle
ディレクトリを入力してください:
cd testapp
ここで、JavaScript実行環境をインストールする必要があります。 gemとしてインストールできます。 それをインストールするには、まず* Gemfile *を開きます:
nano Gemfile
次の行を見つけます。
# gem 'therubyracer', platforms: :ruby
コメントを外します:
gem 'therubyracer', platforms: :ruby
ファイルを保存し、Bundlerを実行します。
bundle install
次に、プロジェクトの仮想ホストファイルを作成する必要があります。 デフォルトのApache仮想ホストをコピーしてこれを行います。
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/testapp.conf
構成ファイルを開きます。
sudo nano /etc/apache2/sites-available/testapp.conf
最終結果が以下に示すファイルと一致するように、編集するか既存のコンテンツを置き換えます。 行う必要がある変更はで強調表示されます。 独自のドメイン名とRailsアプリへの正しいパスを忘れずに使用してください。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
基本的に、このファイルはポート80でドメイン名をリッスンできるようにし、* www *サブドメインのエイリアスを設定し、サーバー管理者のメールアドレスを設定し、新しいプロジェクトのパブリックディレクトリのルートディレクトリを設定し、私たちのサイト。 Apache virtual hostsの詳細については、リンク。
セットアップをテストするために、Rails * Welcome aboard ページを表示します。 ただし、これはアプリケーションが開発環境で開始された場合にのみ機能します。 Passengerはデフォルトで本番環境でアプリケーションを起動するため、これを RailsEnv *オプションで変更する必要があります。 アプリの運用準備ができている場合は、この設定を省略してください。
ドメインをこのアプリに割り当てたくない場合は、「+ ServerName 」と「 ServerAlias +」の行をスキップするか、IPアドレスを使用できます。
ファイルを保存します(CTRL + X、Y、ENTER)。
デフォルトのサイトを無効にし、新しいサイトを有効にして、Apacheを再起動します。
sudo a2dissite 000-default
sudo a2ensite testapp
sudo service apache2 restart
これで、アプリのウェブサイトにアクセスできるようになります。 DropletのドメインまたはIPアドレスに移動します:
http://droplet_ip_address
アプリがデプロイされていることを確認します。 カスタムアプリケーション、またはデフォルトのRailsページに*ようこそ*が表示されます。
image:https://assets.digitalocean.com/articles/rails_passenger/1.png [テストページ]
Railsアプリがサーバー上で公開されました。
ステップ7-定期的に更新する
Rubyを更新するには、このチュートリアルのステップ4に示すように最新バージョンをコンパイルする必要があります。
PassengerとApacheを更新するには、基本的なシステム更新を実行する必要があります。
sudo apt-get update && sudo apt-get upgrade
ただし、利用可能な新しいシステムRubyバージョンがある場合、Ruby(ソースからインストール)を上書きする可能性があります。 このため、Rubyバイナリファイルへの既存のシンボリックリンクを削除し、新しい(正しい)シンボリックリンクを作成するためのコマンドを再実行する必要がある場合があります。 これらは、このチュートリアルのステップ6の最後にリストされています。
更新プロセスの後、Webサーバーを再起動する必要があります。
sudo service apache2 restart