LoginSignup
4
3

More than 5 years have passed since last update.

CentOS7にPostgreSQL9.6とJava8とNginx1.10をインストール

Last updated at Posted at 2016-11-15

はじめに

仕事の現場で「本番環境の構築どうしますか?」と聞くと
「本番環境構築しといて」と言われることよくありますよね。
(言い出しっぺがやらされる法則)
そういう人のために構築手順まとめました。

PostgreSQLのインストール

最新版をインストールしたいので、PostgreSQLのyumリポジトリを追加
sudo yum localinstall https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

インストール
sudo yum install postgresql96-server postgresql96-contrib postgresql96-devel

インストールするパッケージの説明

postgresql-server    サーバ本体(postgresql、libsもインストールされる)
postgresql           クライアント
postgresql-libs      libpqなどのPostgreSQLのライブラリ群
postgresql-devel     開発用モジュール(役立つかもしれないので入れておく)
postgresql-contrib   contribモジュール(役立つかもしれないので入れておく)

バージョン確認コマンド
psql --version

データベースクラスタ(保存領域みたいなもの)を作成
※postgresユーザー(自動で作成されている)になってから実行
sudo su - postgres
/usr/pgsql-9.6/bin/initdb --no-locale --encoding=UTF8

※--no-localeをつけないと、サーバーのロケールが設定されてしまうので注意
(ロケールが設定されるとソート順が変わってしまう)
※initdbをやり直したい場合は「/var/lib/pgsql/9.6/data」の中をすべて削除し再度実行

initdbの実行の仕方はいろいろあるようでどうやるのが正しいかわかりません。
「/usr/pgsql-9.6/bin/postgresql96-setup initdb --no-locale --encoding=UTF8」
他のサイトを見ると上記コマンドをrootで実行してたりするのですが、--no-localeオプションがうまく渡りません。またPostgreSQLのドキュメントには以下の記載があります。
https://www.postgresql.jp/document/9.4/html/app-initdb.html

initdbは、サーバプロセスの所有者となるユーザによって実行されなければなりません。 initdbによって作成されるファイルやディレクトリにサーバがアクセスできる必要があるからです。 サーバをrootとして実行することはできませんので、rootでinitdbを実行してはいけません (実際には、実行しようとしても拒否されます)。

とりあえず、postgresユーザーになってinitdbコマンドを直接叩けば実行できましたが、どうするのが正しいのか分かる人がいたら教えてください。

自動起動確認(Loadedのserviceの箇所を確認 disabledまたはenabled)
systemctl status postgresql-9.6

またはサービス一覧でも確認可能
enabled(自動起動する) disabled(自動起動しない) static(他のサービスに依存)
systemctl list-unit-files -t service

自動起動設定
sudo systemctl enable postgresql-9.6

起動
sudo systemctl start postgresql-9.6

PostgreSQLの動作確認

PostgreSQLクライアント起動
sudo -u postgres psql

ロケール確認(settingがCになっていればロケールなし)
SELECT name, setting, context FROM pg_settings WHERE name LIKE 'lc%';

データベース作成
create database データベース名;

データベース一覧表示(エンコードはUTF8)
\l

終了
\q

Javaのインストール

以下参照
Javaのビルドサーバ(Ant)構築手順

Nginxのインストール

最新版をインストールしたいので、Nginxのyumリポジトリを追加
sudo yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

インストール
sudo yum install nginx

自動起動確認
systemctl status nginx

自動起動設定
sudo systemctl enable nginx

起動
sudo systemctl start nginx

※AWSのEC2インスタンスで繋がらない場合はセキュリティグループを確認
SELinuxが有効でも繋がりました。

tomcatのインストール

構築手順作成しました。
以下参照
CentOS7にTomcat8をインストールして自動起動設定

さいごに

言い出しっぺにやらせるとだれも言い出さなくなると思います。
そこで、今後は言い出しっぺ以外にやらせるというルールにしたらどうでしょう?
とりあえず、今後は「本番環境の構築どうしますか?」と言い出さないようにしようと思います。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3