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

Ruby on Rails

こんにちは。じじグラマーのカン太です
クレーム続きでへこみながらも、週末プログラマーをしています。

前回でWebサーバーがインストールできましたので、続いてデータベースサーバーをインストールしていきます。

前回の記事はこちら。

今回インストールするのは、「PostgreSQL」です。Rubyとの相性がいい(らしい)ですし、何より無料で使用できます。

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

レポジトリの追加

CentOS 標準の yum レポジトリを使う方法は、すぐにインストールできて、手間がかかりませんが、最新バージョンを使えないというデメリットがあります。

ですので、最新のレポジトリのパッケージをダウンロードして、それを使ってインストールします。
最新のパッケージはこちらからダウンロードできます。
https://yum.postgresql.org/repopackages/

URLを指定したコマンド一発でダウンロード& レポジトリに追加ができちゃいます。
今回は、CentOS 7 (x86_64) にインストールするので、「CentOS 7 – x86_64」の URL をコピーします。

コマンドは以下の通り。rootユーザーでログインしてから使用してください。

# yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

・
・
・

Installed:
  pgdg-redhat-repo.noarch 0:42.0-18

完了しました!

これで最新のバージョンがレポジトリに追加されました。

パッケージのインストール

続いてパッケージをインストールします。今回は、postgresqlの13をインストールします。

# yum -y install postgresql13-server

・
・
・

Dependency Installed:
  postgresql13.x86_64 0:13.0-1PGDG.rhel7
  postgresql13-libs.x86_64 0:13.0-1PGDG.rhel7

完了しました!

これでインストールは完了です。
ファイルができているか確認してみましょう。

# ls /usr/pgsql-13
bin  lib  share

パッケージのインストール時に PostgreSQL のスーパーユーザー 「postgres」 が存在しなければ、自動的に作成してくれるようです。念のため確認しておきましょう。

# id postgres
uid=26(postgres) gid=26(postgres) groups=26(postgres)

データベースクラスタの作成

データベースクラスタとはデータベースを格納する領域のことです。このデータベースクラスタを作成しておかないと PostgreSQL は起動できません。

コマンドのオプションはよくわかりませんが、おすすめのやつを適当に選びました。
PostgreSQL のスーパーユーザー 「postgres」 に代わってからインストールするので、 「postgres」 のパスワードを設定してください。

# su - postgres -c '/usr/pgsql-13/bin/initdb -E UTF8 --locale=C -A scram-sha-256 -W'
データベースシステム内のファイルの所有者はユーザ"postgres"となります。
このユーザをサーバプロセスの所有者とする必要があります。

新しいスーパユーザのパスワードを入力してください: (パスワードを入力)
再入力してください: (パスワードを再入力)

・
・
・

成功しました。以下のようにしてデータベースサーバを起動することができます:

    /usr/pgsql-13/bin/pg_ctl -D /var/lib/pgsql/13/data -l ログファイル start

データベースクラスタが作成できたら、ディレクトリ内のファイルを確認してみましょう。

# ls /var/lib/pgsql/13/data
PG_VERSION    pg_hba.conf    pg_replslot   pg_subtrans  postgresql.auto.conf
base          pg_ident.conf  pg_serial     pg_tblspc    postgresql.conf
global        pg_logical     pg_snapshots  pg_twophase
pg_commit_ts  pg_multixact   pg_stat       pg_wal
pg_dynshmem   pg_notify      pg_stat_tmp   pg_xact

データベースサーバの起動

以上でインストールが完了したので起動してみましょう。

# systemctl start postgresql-13.service

ついでに、いつものようにOS の起動時に PostgreSQL サービスが起動されるようにします。

systemctl enable postgresql-13.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-13.service to /usr/lib/systemd/system/postgresql-13.service.

データベースの接続確認

起動できているかどうか、接続を確認します。

$ psql -l
ユーザ postgres のパスワード: (パスワードを入力)
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres

こんな感じでできていればOKです。

まとめ

いかがでしたでしょうか。今回はコマンドだけでどんどんインストールできるので簡単でした。コマンドはおすすめのやつを選んだだけなので、ほぼほぼコピペで終了です。

次回はいよいよRailsとの連携を設定していきます。

コメント