はじめに
前回のURL:https://psblog.casareal.co.jp/archives/362
皆さんこんにちは。こちらは前回からの続きです(前回をご覧いただいていない方は、ぜひ上記のリンクからご覧ください)。
前回はWindows上にVirtualBoxとVagrantを導入して、CentOS8.1の仮想マシン環境を起動するところまで実施しました。
今回はミドルウェア系の導入を行って、開発環境を整えて行きたいと思います。
使用する仮想化ソフト
ソフトウェア | バージョン |
---|---|
Vagrant | 2.2.9 |
VirtualBox | 6.1.8 r137981 |
セットアップする環境
環境 | バージョン |
---|---|
CentOS | 8.1 |
Apache | 2.4 |
Postgresql | 10 |
PHP | 7.4 |
セットアップ前の、CentOSの初期設定
ミドルウェアのインストールを行う前に、諸々の初期設定をしてしまいたいと思います。
下記のようなサイトを参考に、自身の開発環境に必要な初期設定を済ませてしまいましょう。
参考URL:https://www.rem-system.com/centos8-first-settings/#2_selinux
今回私の環境では、開発・検証を目的としているため、selinuxとfirewalledを無効化しています。
それぞれの開発現場のポリシーに従って設定をしていただければと思います。
また、もしIPアドレスの取得をVirtualBoxのブリッジネットワークで、DHCP経由で取得する場合には、Vagrantfileに下記の設定を書き加えて仮想マシンを再起動すると、動的にIPアドレスを取得するようになります。
1 |
config.vm.network "public_network" |
Apacheのインストール
下記のコマンドで、Apacheのインストールを行います。
1 |
dnf install -y httpd httpd-tools httpd-devel |
今回インストールで指定したパッケージの内訳は下記のようになっています。
パッケージ | 内容 |
---|---|
httpd | httpdの本体 |
httpd-tools | httpdに関連するツール群 |
httpd-devel | httpd開発ツール、モジュール等 |
インストール実行後、Apacheの起動・自動起動設定を行います。
1 2 |
systemctl start httpd systemctl enable httpd |
これでサーバー起動時、自動的にApacheが起動するようになります。
念のため、Apacheの現在の起動状態を確認しておきます。
1 |
systemctl status httpd |
上記コマンドを実行後、ステータスが「active (running)」となっていれば起動しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-07-22 00:18:10 UTC; 12min ago Docs: man:httpd.service(8) Main PID: 707 (httpd) Status: "Total requests: 6; Idle/Busy workers 100/0;Requests/sec: 0.0082; Bytes served/sec: 443 B/sec" Tasks: 278 (limit: 2852) Memory: 25.1M CGroup: /system.slice/httpd.service ├─ 707 /usr/sbin/httpd -DFOREGROUND ├─ 733 /usr/sbin/httpd -DFOREGROUND ├─ 734 /usr/sbin/httpd -DFOREGROUND ├─ 735 /usr/sbin/httpd -DFOREGROUND ├─ 736 /usr/sbin/httpd -DFOREGROUND └─3788 /usr/sbin/httpd -DFOREGROUND Jul 22 00:18:09 localhost.localdomain systemd[1]: Starting The Apache HTTP Server... Jul 22 00:18:10 localhost.localdomain httpd[707]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress> Jul 22 00:18:10 localhost.localdomain httpd[707]: Server configured, listening on: port 80 Jul 22 00:18:10 localhost.localdomain systemd[1]: Started The Apache HTTP Server. |
起動が確認出来たら、仮想マシンのIPアドレスにブラウザからアクセスしてみましょう。
ApacheのWelcomeページが表示されればインストールは完了です。
Postgresqlのインストール
続いてpostgresqlのインストールを行っていきます。
こちらはCentOS8の標準パッケージをインストールしてしまってもよいのですが、今回は公式サイトに記載されている方法で実施をしていきたいと思います。
公式サイト:https://www.postgresql.org/download/linux/redhat/
ここのサイトですが、インストールしたいpostgresqlのバージョンやプラットフォームを選択すると、必要なセットアップスクリプトが表示される便利なサイトです。
インストールに困ったら見てみるとよいかもしれません。
今回はこのサイトのスクリプトに則って、postgresql10をインストールしたいと思います(現行の最新バージョンは12なので、公式サイトの手順に則ってそちらをインストールしてもよいと思います)。
公式サイトでスクリプトを表示すると、下記のようなものになりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Install the repository RPM: dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm # Disable the built-in PostgreSQL module: dnf -qy module disable postgresql # Install PostgreSQL: dnf install postgresql10-server # Optionally initialize the database and enable automatic start: /usr/pgsql-10/bin/postgresql-10-setup initdb systemctl enable postgresql-10 systemctl start postgresql-10 |
上記のコマンドを上から順に実施していきましょう。
セットアップの際、ロケールの設定などが必要な場合は、initdbを実行する前に下記のように環境変数に設定を格納してから実行してください。
下記はロケールなしで設定した例です。
1 |
export PGSETUP_INITDB_OPTIONS="--encoding=UTF8 --no-locale" |
無事インストールができましたら、postgresユーザーに切り替えて、テーブル一覧を見てみましょう(下記はロケールを変更して実施した例です)。
1 2 3 4 5 6 7 8 9 10 11 12 |
su - postgres psql -l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+-------+----------------------- 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 (3 rows) |
ここまで実施が終わりましたら、設定ファイルの方を編集します。
ここではどこからでもアクセス可能なように設定を行いたいと思います。
まず、下記のファイルを開きます。
1 |
vi /var/lib/pgsql/10/data/postgresql.conf |
初期設定では、TCP/IPでの接続が許可されていないため、下記のように設定を変更します。
1 2 |
#listen_addresses = 'localhost' → listen_addresses = '*' #port = 5432 → port = 5432 |
ポートに関してはコメントアウトを外しただけの変更です。
引き続き、下記のファイルを編集します。
1 |
vi /var/lib/pgsql/10/data/pg_hba.conf |
ここではlocalhost内での接続と、Vagrantホストマシンからの接続の両方を許可する設定を追記します。
まず下記の部分を見つけて、METHODを「ident」から「trust」に変更します。
1 2 3 |
host all all 127.0.0.1/32 ident ↓ host all all 127.0.0.1/32 trust |
続いて、Vagrantを起動しているホストマシンからの接続を許可する下記の設定を追記します。
これをすることで、例えばVagrantホスト上にインストールした、「PgAdmin」などの便利なデータベースクエリツールが使用できるようになります。
CIDRアドレスは任意のものに置き換えて追記してください。
1 |
host all all xxx.xxx.xxx.xxx/xx trust |
ここまで設定できましたら、postgresqlを再起動します。
1 |
systemctl restart postgresql-10.service |
正しく設定ができているか、例えば上記のPgAdminをインストール・セットアップして確認してもよいかもしれません。今回ここでは割愛します。
公式サイト:https://www.pgadmin.org/
ここまでで思いのほか長くなってきましたので、今回はここまで。
次回はいよいよphpの導入と実行を行っていきたいと思います。