ロビーアプリケーションをLinuxサーバーにデプロイする方法について、完全かつ包括的なガイドを日本語でご紹介します。以下の手順に従い、ロビーアプリケーションを正しくインストールして運用できるようにします。
1. 必要な前提条件
ロビーアプリケーションをLinuxサーバーにデプロイするためには、いくつかの基本的な条件があります。まず最初に確認しておくべきことは、サーバーが以下の要件を満たしていることです。
- Linuxサーバー: Ubuntu、CentOS、または他の主要なディストリビューション
- Rubyのインストール: Rubyのバージョンは最新である必要があります(通常は2.x以上)。
- データベース: ロビーアプリケーションは通常、MySQLやPostgreSQLなどのデータベースを利用します。
- Webサーバー: NginxやApacheなどのWebサーバーが必要です。
- Bundler: Rubyの依存関係を管理するために、Bundlerを使用します。
2. サーバー環境の準備
サーバー環境が整っていない場合、まず以下のように必要なパッケージをインストールします。
Rubyのインストール
最新バージョンのRubyをインストールするためには、まずサーバーに必要な依存関係をインストールします。以下はUbuntuの場合です。
bashsudo apt-get update
sudo apt-get install -y curl gnupg2
curl -sSL https://get.rvm.io | bash -s stable --ruby
source ~/.rvm/scripts/rvm
rvm install ruby
rvm use ruby --default
ruby -v
これで、Rubyがインストールされ、バージョンを確認できるようになります。
データベースのインストール
ロビーアプリケーションはデータベースを使用するため、まずMySQLまたはPostgreSQLをインストールします。ここではMySQLを例に挙げます。
bashsudo apt-get install mysql-server sudo mysql_secure_installation
MySQLがインストールされ、初期設定が完了しました。次にデータベースを作成します。
bashmysql -u root -p CREATE DATABASE ruby_app;
必要なGemのインストール
次に、アプリケーションの依存関係を管理するためにBundlerをインストールします。
bashgem install bundler
3. アプリケーションのデプロイ
アプリケーションのクローン
まず、ロビーアプリケーションのソースコードをサーバーにクローンします。Gitを使用してリポジトリからアプリケーションを取得します。
bashgit clone https://github.com/username/ruby_app.git
cd ruby_app
必要なGemをインストール
次に、Gemfile
に記載された依存関係をインストールします。
bashbundle install
これで、アプリケーションに必要なすべてのGemがインストールされます。
データベースの設定
アプリケーションのデータベース設定を行います。データベースのマイグレーションを実行して、必要なテーブルを作成します。
bashrails db:create rails db:migrate
これで、データベースが作成され、テーブルが構築されます。
4. アプリケーションの起動
アプリケーションを起動するためには、以下のコマンドを使用します。
bashrails server -b 0.0.0.0 -p 3000
これで、アプリケーションがhttp://<サーバーのIPアドレス>:3000
でアクセスできるようになります。
5. Webサーバーの設定
本番環境では、直接Railsサーバーを使用することは避け、Webサーバー(NginxやApache)を利用します。ここでは、Nginxを設定する方法を説明します。
Nginxのインストール
bashsudo apt-get install nginx
Nginx設定ファイルの作成
/etc/nginx/sites-available/
ディレクトリに、以下のような設定ファイルを作成します。
nginxserver {
listen 80;
server_name example.com;
root /path/to/ruby_app/public;
passenger_enabled on;
passenger_app_env production;
location / {
try_files $uri/index.html $uri @rails;
}
location @rails {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
シンボリックリンクの作成
Nginxに設定ファイルを読み込ませるため、シンボリックリンクを作成します。
bashsudo ln -s /etc/nginx/sites-available/ruby_app /etc/nginx/sites-enabled/
Nginxの再起動
bashsudo service nginx restart
6. SSL設定(オプション)
本番環境でのセキュリティを高めるために、SSL(HTTPS)を設定することをお勧めします。Let’s Encryptを利用して無料でSSL証明書を取得できます。
bashsudo apt-get install certbot python3-certbot-nginx sudo certbot --nginx
7. メンテナンスと監視
最後に、アプリケーションが正常に稼働しているかを監視することが重要です。systemd
を使用してアプリケーションをサービスとして管理することができます。
systemdユニットファイルの作成
/etc/systemd/system/ruby_app.service
というファイルを作成し、以下の内容を追加します。
ini[Unit]
Description=Ruby Application
After=network.target
[Service]
Type=simple
WorkingDirectory=/path/to/ruby_app
ExecStart=/usr/local/bin/bundle exec rails server -b 0.0.0.0 -p 3000
User=deploy
Group=deploy
Environment=RAILS_ENV=production
[Install]
WantedBy=multi-user.target
サービスの起動
bashsudo systemctl start ruby_app
sudo systemctl enable ruby_app
これで、システムが再起動した場合でもアプリケーションが自動的に起動します。
結論
これで、ロビーアプリケーションをLinuxサーバーにデプロイするための基本的な手順が完了しました。適切にサーバーを設定し、アプリケーションが正常に動作するようにすることが重要です。また、運用を開始した後は、バックアップやセキュリティ対策を講じることを忘れずに行いましょう。