CentOS6でApacheとPassengerを使用してRails4アプリをセットアップする方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンのCentOSについて説明します。 現在CentOS6を実行しているサーバーを運用している場合は、サポートされているバージョンのCentOSにアップグレードまたは移行することを強くお勧めします。
理由:
代わりに参照:このガイドは参照として役立つ場合がありますが、他のCentOSリリースでは機能しない場合があります。 可能な場合は、使用しているCentOSのバージョン用に作成されたガイドを使用することを強くお勧めします。
基礎
ユーザーがバニライメージ(この場合はCentOS 6.4 x64)からドロップレットを作成する場合、Ruby on Railsアプリケーションを実行してオンラインで利用できるようにするには、追加のシステム管理作業が必要です。 このチュートリアルでは、それを実現するために必要な手順を説明します。
手順3のPassengerコマンドはメモリを大量に消費するため、このチュートリアルを実行するには、少なくとも1GBのRAMを搭載した仮想サーバーが最小要件です。
また、チュートリアルでは、ユーザーがVPSへのrootアクセス権を持っていることを前提としています(root権限を持つユーザーまたはシステムrootとして)。
このチュートリアルは、実稼働ノードのセットアップを目的としたものではありません。 これには、開発ライブラリのインストールとマシンへのアドホックコンパイルが含まれますが、本番環境をセットアップする場合はお勧めできません。」
ステップ1–Apacheのセットアップ
すべてはWebサーバーから始まり、Apacheをインストールする最も簡単な方法は、yumリポジトリからプルすることです。
yum install httpd
インストールが完了したら、システムの起動時にApacheを自動的に実行するようにシステムを構成する必要があります。
chkconfig httpd on
この設定がないと、ドロップレットを再起動するたびにhttpdサービスを手動で開始する必要があります。
次のステップは、構成ファイルを編集して、着信要求を予期するようにApacheを構成することです。
nano /etc/httpd/conf/httpd.conf
エディターの下部近くで、NameVirtualHost *:80を含む行を見つけてコメントを解除します。
エディターを保存して終了します。 Apacheを今すぐ開始する準備ができました:
service httpd start
Voilà! WebブラウザでドロップレットのIPアドレスにアクセスすると、Apacheのウェルカムページが表示されます。
ステップ2–Ruby2.0とRails4.0のセットアップ
Apacheのセットアップは簡単な散歩でした。 Rubyをセットアップし、次にRailsをセットアップする方がさらに簡単です。
最も簡単な方法は、Rubyバージョンマネージャー(RVM)を使用して、マシン上に複数のRuby環境を維持することです。 RVMの最新の安定バージョンは、次のようにダウンロードおよびインストールされます。
curl -L get.rvm.io | bash -s stable
RVMがすべてのユーザーによって使用されることになっている場合、ジョブに使用できるシェルスクリプトがあります。
source /etc/profile.d/rvm.sh
さらに、RVMの要件をインストールする必要があり、このコマンドはさまざまな開発パッケージと依存関係をインストールします。
rvm requirements
この時点で、RVMは完全に初期化され、使用できるようになります。
現在、最新のRubyバージョンは2.0.0であり、それをインストールする対応するRVMコマンドは次のとおりです。
rvm install 2.0.0
Ruby環境をダウンロードしてインストールします。 インストール後、この時点でインストールされているのはこのバージョンだけですが、デフォルト環境として構成する必要があります。
rvm use 2.0.0 --default
RailsはRubygemとして配布されており、ローカルシステムに追加するのは非常に簡単です。
gem install rails
簡単なバージョンチェックにより、次のような出力が得られます。
[user@server ~]$ ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
[user@server ~]$ rails -v
Rails 4.0.1
良くやった!
ステップ3–PhusionPassengerのセットアップ
Phusion Passenger(通常はPassengerと短縮されるか、mod_passengerと呼ばれます)はアプリケーションサーバーであり、Rubyサイトに電力を供給するためによく使用されます。 そのコードはRubygemの形式で配布され、ターゲットマシンでコンパイルされ、モジュールとしてApacheにインストールされます。
まず、gemをシステムにインストールする必要があります。
gem install passenger
Apacheモジュールをコンパイルする前に、2つの依存関係パッケージもインストールする必要があります。
yum install curl-devel httpd-devel
これで、環境をコンパイルする準備が整いました。 このプロセスには数分かかり、次のコマンドで開始されます。
passenger-install-apache2-module
このスクリプトは実際にはモジュールをインストールしないことに注意してください。 モジュールのバイナリをコンパイルし、gemのパスの下に配置します。 パスは画面に出力され、Apacheの構成ファイル(/etc/httpd/conf/httpd.conf)に手動でコピーして貼り付ける必要があります。
出力は次のようになります。
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-
4.0.26/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.26
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p353/ruby
これらの行をファイルの最後に配置すると、問題なく機能します。 変更を保存してApacheを再起動します。
service httpd restart
2つの緑色のOKメッセージは、環境セットアップの完了を示します。 おめでとうございます!
最後に–Railsアプリの例
スモークテストを行うことは常に良いことであり、Railsのアプリスケルトンジェネレーターを使用することはそのタスクに理想的なツールです。 sqliteの開発パッケージをインストールする必要があります。
yum install sqlite-devel
テストアプリケーションコードを配置する最も簡単な場所は、ApacheのWebルートフォルダーです。
cd /var/www/html
このフォルダーでは、テストアプリケーションコードが「helloapp」フォルダーの下に生成されます。
rails new helloapp
cd helloapp
CentOSにはJavaScript実行環境が付属していないため、手動でインストールする必要があります。 これはgemとしてインストールできるため、次のようにGemfileにリストする必要があります。
gem 'therubyracer'
Rubyアプリケーションに必要なgemは、アプリケーションのルートに配置してバンドルインストーラーを実行することでインストールされます。
bundle install
また、開発データベースは移行ツールで初期化する必要があります。
rake db:migrate
Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に最後にアクセスする必要があります。 仮想ホストセクションが欠落しているため、下部に追加する必要があります:
RackEnv開発
RackEnv development
<VirtualHost *:80>
ServerName www.yourhost.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /var/www/html/helloapp/public
<Directory /var/www/html/helloapp/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
</VirtualHost>
変更を保存して、Apacheをもう一度再起動します。
service httpd restart
ブラウザで仮想サーバーのIPアドレスに移動すると、「ようこそ– Ruby on Railsに乗っています!」と表示されます。 ウェルカムメッセージ。