さくらのVPSで Ruby on Rails のアプリを公開 第7回

Ruby on Rails

こんにちは。じじグラマーのカン太です。
休日は全く能率が上がりませんが、週末プログラマーをしています。

前回までで、サーバ関連の設定と基本的なセキュリティ関連の設定が完了しました。
今回からいよいよrailsアプリの公開のための設定をしていきます。

前回の内容はこちらから

では早速はじめましょう。

Webサーバをインストール

まずはWebサーバをインストールします。今回は「Nginx」 を選択しました。Webサーバ と言えば、「Apache 」との印象があるかもしれませんが、railsとの相性は 「Nginx」 の方がいいような気がします。詳しいことはよくわかりませんが、前回公開したアプリが「Nginx」で、安定稼働しているのでこれでいきましょう。

yumコマンドでインストールします。 yumとはパッケージ管理ツールです。これを使えば簡単にインストールできる、らしいので利用していきます。

リポジトリの追加

リポジトリとは、よくわかりませんがソースの「保管場所」のようなものらしいです。yumリポジトリには、nginxがないそうですので、追加してあげる必要があります。

前回同様「Tera Term」で一般ユーザーでログインしたのち、「root」ユーザーに変更してインストールします。

$ su -

パスワードを入力後、「root」ユーザーに変わったことを確認してください。

次に「nginx.repo」 というファイル名で、 「/etc/yum.repos.d/」 配下にファイルを作成します。

# cd /etc/yum.repos.d
# touch nginx.repo

ファイルの中身を書き加えます。

# vi nginx.repo

特にこだわりがなければ、次のコードをコピペしましょう。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

セーブしてエディターを閉じてください。

※ 「baseurl=http://nginx.org/packages/centos/7/$basearch/」の「7」の部分はインストールしたcentosのバージョンに合わせて変更してください(画面はcentos7 の場合の例です)

書き換えた内容が反映されているか確認します。

# yum info nginx
利用可能なパッケージ
名前                : nginx
アーキテクチャー    : x86_64
エポック            : 1
バージョン          : 1.20.1
リリース            : 2.el7
容量                : 586 k
リポジトリー        : epel/x86_64
要約                : A high performance web server and reverse proxy server
URL                 : https://nginx.org
ライセンス          : BSD
説明                : Nginx is a web server and a reverse proxy server for HTTP,
                    : SMTP, POP3 and IMAP protocols, with a strong focus on high
                    : concurrency, performance and low memory usage.

こんなメッセージが表示されていればOKです。

では、さくっとインストールしてみましょう。

# yum install nginx

「完了しました!」とメッセージが表示されれば完了です。

バージョンを確認しましょう。

# nginx -v
nginx version: nginx/1.20.1

こんな感じで表示されればOKです。

ブラウザで確認

早速インストールした「nginx」を起動します。

# systemctl start nginx

ブラウザで「http://コンピュータのホスト名/」あるいは「 http://コンピュータのIPアドレス/ 」を入力してアクセスしてみましょう。

ウェルカムページが表示されれば完了です。

ついでに、起動時に自動で 「nginx」 が起動するようにしておきましょう。

# systemctl enable nginx

Firewallの設定

上記のウェルカムページが表示されない場合、ファイアーウォールのポートが開いていない可能性があります。確認してみましょう。

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 8088/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

「services:」のところに、「http」がなければ追記してあげる必要があります。便利なコマンドがあるので使いましょう。

$ firewall-cmd --add-service=http --zone=public --permanent
$ firewall-cmd --reload

追記してリロードするコマンドです。

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client http ssh
  ports: 8088/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

「services:」 欄に「http」が追記されましたでしょうか。
追記されたら、再度ブラウザでウェルカムページが表示されるか確認してみましょう。

まとめ

いかがでしたでしょうか。うまく表示されましたでしょうか。僕はいろんなところをミスして、一発でうまくいった試しがありません。その度にいろいろ調べていろいろ試してぐちゃぐちゃになって・・の繰り返しです。調べてるうちに自分の知識も増えていく、と信じて作業をしています。

次回から、いよいよrails側の設定をしていく予定です。

コメント