(第2回)LinuxにWordPressを構築【CentOS7】

(第2回)LinuxにWordPressを構築【CentOS7】

目次

前回の振り返り
swap設定の確認
パッケージの最新化
データベースのインストール

前回の振り返り

swap設定の確認

swapは現在使われていないプログラム(プロセス)が使用している領域をハードディスクに一時的に書き出すことでメモリを開放し、メモリの空き容量を確保します。

メモリに空きが少ない場合はミドルウェア等のインストール時に失敗してしまったり、インストールしたシステムの起動に失敗したり、トラブルが発生する原因のひとつの要素となります。
また、OS自体の動作に必要なメモリの容量を確保できずカーネルパニック発生にも繋がります。

redhatカスタマーポータルの情報を確認すると実装メモリに対して適正なswapのサイズは以下のようになっています。

システム内の RAM の容量推奨される swap 領域ハイバネートを許可する場合の推奨 swap 領域
⩽ 2 GBRAM 容量の 2 倍RAM 容量の 3 倍
> 2 GB – 8 GBRAM 容量と同じRAM 容量の 2 倍
> 8 GB – 64 GB最低 4GBRAM 容量の 1.5 倍
> 64 GB最低 4GBハイバネートは推奨しません

(出典)redhat カスタマーポータル 表14.1「システムの推奨 swap 領域」

現在のswap設定がどうなっているか確認します。

[root@localhost ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 0       -1

すでにswap領域がありますね。
前回のOSインストール時に「自動構成のパーティション構成」を選択したため、すでにswapパーティションが出来ており、swapが有効となっておりました。

今回はこのままいきたいと思いますが、OSインストール時にswapパーティションを作成しなかった場合は、自身でswapファイルを作成する等の対応が必要です。
設定手順としてはrc.localにスクリプトを追記し、OS起動時に自動的にswapファイルを作成、swapが有効になるように書く方法が効率的でしたので以下に例を記載します。

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local

# ここからswapの処理を追記

SWAPFILENAME=/swap.img
MEMSIZE=`cat /proc/meminfo | grep MemTotal | awk '{print $2}'`

if [ $MEMSIZE -lt 2097152 ]; then
  SIZE=$((MEMSIZE * 2))k
elif [ $MEMSIZE -lt 8388608 ]; then
  SIZE=${MEMSIZE}k
elif [ $MEMSIZE -lt 67108864 ]; then
  SIZE=$((MEMSIZE / 2))k
else
  SIZE=4194304k
fi

fallocate -l $SIZE $SWAPFILENAME && mkswap $SWAPFILENAME && swapon $SWAPFILENAME

# ここまで

追記した後はOSを再起動し「swapon -s」でswapの状況を確認しましょう。

※ 注意点としては、そもそもRAMの容量が足りない場合などは、実メモリを増やす検討をした方が良いでしょう。
swap設定の確認は以上です。

パッケージの最新化

続いて yum update でパッケージを全てアップデートします。

[root@localhost ~]# yum update

アップデートするパッケージ、依存関係のパッケージのチェックが終わると以下のようなメッセージで止まるので「y」で進めます。

インストール    5 パッケージ (+3 個の依存関係のパッケージ)
更新          164 パッケージ

総ダウンロード容量: 233 M
Is this ok [y/d/N]: y

再度、メッセージが表示されました。

file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-5.1804.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]

こちらはyumコマンドでパッケージのインストールを行う際にGPG署名というものを使用し、パッケージの検証を行うようになっているのですが、その際に必要な鍵が存在しないためインポートしてよいか確認するメッセージのようです。「y」を押して進めましょう。

上記の処理を行います。よろしいでしょうか? [y/N]y

無事、アップデートが完了したメッセージが表示されました。

完了しました!

これでパッケージの最新化は完了です。

データベースのインストール

CentOS7はMariaDBというMySQL互換のデータベースサーバーがデフォルトでインストールされているようです。
WordPressでもMariaDBの10.0以上であれば利用できるようです。

CentOS7にMariaDBがインストールされているか確認します。

[root@localhost ~]# rpm -qa | grep maria
mariadb-libs-5.5.60-1.el7_5.x86_64

結果は、MariaDBのライブラリがインストールされていました。
元々データベースエンジンはMySQLにしようと思っていたのですが、MySQLよりMariaDBの方がレスポンスが向上しているという情報もちらほら見かけます。

使い慣れているMySQLとどちらにするか迷いました。

そして1日迷った結果、今回は検証ということもあり今まで使ったことが無いMariaDBで構築しようという決心をしました。
元々入っているライブラリバージョンが古いためまずは「mariadb-libs」をアンインストールしたいと思います。

[root@localhost ~]# yum remove mariadb-libs
読み込んだプラグイン:fastestmirror
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-libs.x86_64 1:5.5.60-1.el7_5 を 削除
--> 依存性の処理をしています: libmysqlclient.so.18()(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
--> 依存性の処理をしています: libmysqlclient.so.18(libmysqlclient_18)(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ postfix.x86_64 2:2.10.1-7.el7 を 削除
--> 依存性解決を終了しました。
 
依存性を解決しました
 
==================================================================================================================================================================================================
 Package                                          アーキテクチャー                           バージョン                                           リポジトリー                               容量
==================================================================================================================================================================================================
削除中:
 mariadb-libs                                     x86_64                                     1:5.5.60-1.el7_5                                     @base                                     4.4 M
依存性関連での削除をします:
 postfix                                          x86_64                                     2:2.10.1-7.el7                                       @base                                      12 M
 
トランザクションの要約
==================================================================================================================================================================================================
削除  1 パッケージ (+1 個の依存関係のパッケージ)
 
インストール容量: 17 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : 2:postfix-2.10.1-7.el7.x86_64                                                                                                                                     1/2
  削除中                  : 1:mariadb-libs-5.5.60-1.el7_5.x86_64                                                                                                                              2/2
  検証中                  : 2:postfix-2.10.1-7.el7.x86_64                                                                                                                                     1/2
  検証中                  : 1:mariadb-libs-5.5.60-1.el7_5.x86_64                                                                                                                              2/2
 
削除しました:
  mariadb-libs.x86_64 1:5.5.60-1.el7_5
 
依存性の削除をしました:
  postfix.x86_64 2:2.10.1-7.el7
 
完了しました!

は!、、postfixまで依存関係でアンインストールされてしまいました。

postfixは後で入れなおしておきたいと思います。

次に現在のリポジトリではMariDBの10系がインストールできないのでMariaDB公式サイトからリポジトリに記載する内容を取得します。

[root@localhost ~]# vi /etc/yum.repos.d/mariadb.repo
# MariaDB 10.3 CentOS repository list - created 2018-12-06 02:44 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

これでリポジトリの設定が出来ましたので実際にMariaDBをインストールをしていきます。
以下の2つをインストールするようにyumコマンドを実行します。

  • MariaDB-server
  • MariaDB-client
yum install MariaDB-server MariaDB-client
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
依存性の解決をしています
 
--> トランザクションの確認を実行しています。
 
(省略)
 
依存性を解決しました
 
==============================================================================================================================================================================================================================
 Package                                                      アーキテクチャー                            バージョン                                                       リポジトリー                                  容量
==============================================================================================================================================================================================================================
インストール中:
 MariaDB-client                                               x86_64                                      10.3.11-1.el7.centos                                             mariadb                                       53 M
 MariaDB-server                                               x86_64                                      10.3.11-1.el7.centos                                             mariadb                                      123 M
依存性関連でのインストールをします:
 MariaDB-common                                               x86_64                                      10.3.11-1.el7.centos                                             mariadb                                      157 k
 MariaDB-compat                                               x86_64                                      10.3.11-1.el7.centos                                             mariadb                                      2.8 M
 boost-program-options                                        x86_64                                      1.53.0-27.el7                                                    base                                         156 k
 galera                                                       x86_64                                      25.3.24-1.rhel7.el7.centos                                       mariadb                                      8.1 M
 lsof                                                         x86_64                                      4.87-6.el7                                                       base                                         331 k
 perl                                                         x86_64                                      4:5.16.3-293.el7                                                 base                                         8.0 M
 perl-Carp                                                    noarch                                      1.26-244.el7                                                     base                                          19 k
 perl-Compress-Raw-Bzip2                                      x86_64                                      2.061-3.el7                                                      base                                          32 k
 perl-Compress-Raw-Zlib                                       x86_64                                      1:2.061-4.el7                                                    base                                          57 k
 perl-DBI                                                     x86_64                                      1.627-4.el7                                                      base                                         802 k
 perl-Data-Dumper                                             x86_64                                      2.145-3.el7                                                      base                                          47 k
 perl-Encode                                                  x86_64                                      2.51-7.el7                                                       base                                         1.5 M
 perl-Exporter                                                noarch                                      5.68-3.el7                                                       base                                          28 k
 perl-File-Path                                               noarch                                      2.09-2.el7                                                       base                                          26 k
 perl-File-Temp                                               noarch                                      0.23.01-3.el7                                                    base                                          56 k
 perl-Filter                                                  x86_64                                      1.49-3.el7                                                       base                                          76 k
 perl-Getopt-Long                                             noarch                                      2.40-3.el7                                                       base                                          56 k
 perl-HTTP-Tiny                                               noarch                                      0.033-3.el7                                                      base                                          38 k
 perl-IO-Compress                                             noarch                                      2.061-2.el7                                                      base                                         260 k
 perl-Net-Daemon                                              noarch                                      0.48-5.el7                                                       base                                          51 k
 perl-PathTools                                               x86_64                                      3.40-5.el7                                                       base                                          82 k
 perl-PlRPC                                                   noarch                                      0.2020-14.el7                                                    base                                          36 k
 perl-Pod-Escapes                                             noarch                                      1:1.04-293.el7                                                   base                                          51 k
 perl-Pod-Perldoc                                             noarch                                      3.20-4.el7                                                       base                                          87 k
 perl-Pod-Simple                                              noarch                                      1:3.28-4.el7                                                     base                                         216 k
 perl-Pod-Usage                                               noarch                                      1.63-3.el7                                                       base                                          27 k
 perl-Scalar-List-Utils                                       x86_64                                      1.27-248.el7                                                     base                                          36 k
 perl-Socket                                                  x86_64                                      2.010-4.el7                                                      base                                          49 k
 perl-Storable                                                x86_64                                      2.45-3.el7                                                       base                                          77 k
 perl-Text-ParseWords                                         noarch                                      3.29-4.el7                                                       base                                          14 k
 perl-Time-HiRes                                              x86_64                                      4:1.9725-3.el7                                                   base                                          45 k
 perl-Time-Local                                              noarch                                      1.2300-2.el7                                                     base                                          24 k
 perl-constant                                                noarch                                      1.27-2.el7                                                       base                                          19 k
 perl-libs                                                    x86_64                                      4:5.16.3-293.el7                                                 base                                         688 k
 perl-macros                                                  x86_64                                      4:5.16.3-293.el7                                                 base                                          44 k
 perl-parent                                                  noarch                                      1:0.225-244.el7                                                  base                                          12 k
 perl-podlators                                               noarch                                      2.5.1-3.el7                                                      base                                         112 k
 perl-threads                                                 x86_64                                      1.87-4.el7                                                       base                                          49 k
 perl-threads-shared                                          x86_64                                      1.43-6.el7                                                       base                                          39 k
 rsync                                                        x86_64                                      3.1.2-4.el7                                                      base                                         403 k
 
トランザクションの要約
==============================================================================================================================================================================================================================
インストール  2 パッケージ (+40 個の依存関係のパッケージ)
 
総ダウンロード容量: 201 M
インストール容量: 829 M
Is this ok [y/d/N]: y
Downloading packages:
 
(省略)
 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                          2.1 MB/s | 201 MB  00:01:34     
https://yum.mariadb.org/RPM-GPG-KEY-MariaDB から鍵を取得中です。
Importing GPG key 0x1BB943DB:
 Userid     : "MariaDB Package Signing Key <package-signing-key@mariadb.org>"
 Fingerprint: 1993 69e5 404b d5fc 7d2f e43b cbcb 082a 1bb9 43db
 From       : https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 
(省略)
 
chown: ユーザ指定が不正: `mysql'
 
PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:
 
'/usr/bin/mysqladmin' -u root password 'new-password'
'/usr/bin/mysqladmin' -u root -h localhost.localdomain password 'new-password'
 
Alternatively you can run:
'/usr/bin/mysql_secure_installation'
 
which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.
 
See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.
 
Please report any problems at http://mariadb.org/jira
 
The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
<blockquote class="wp-embedded-content" data-secret="Q4X4ktg6hd"><a href="https://mariadb.org/get-involved/">Get Involved</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" src="https://mariadb.org/get-involved/embed/#?secret=Q4X4ktg6hd" data-secret="Q4X4ktg6hd" width="600" height="338" title="“Get Involved” — MariaDB.org" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
 
  検証中                  : perl-HTTP-Tiny-0.033-3.el7.noarch                                                                                                                                                            1/42
 
(省略)
 
  検証中                  : 4:perl-libs-5.16.3-293.el7.x86_64                                                                                                                                                           42/42
 
インストール:
  MariaDB-client.x86_64 0:10.3.11-1.el7.centos                                                                  MariaDB-server.x86_64 0:10.3.11-1.el7.centos                                                                 
 
依存性関連をインストールしました:
  MariaDB-common.x86_64 0:10.3.11-1.el7.centos MariaDB-compat.x86_64 0:10.3.11-1.el7.centos boost-program-options.x86_64 0:1.53.0-27.el7 galera.x86_64 0:25.3.24-1.rhel7.el7.centos  lsof.x86_64 0:4.87-6.el7                
  perl.x86_64 4:5.16.3-293.el7                 perl-Carp.noarch 0:1.26-244.el7              perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBI.x86_64 0:1.627-4.el7           
  perl-Data-Dumper.x86_64 0:2.145-3.el7        perl-Encode.x86_64 0:2.51-7.el7              perl-Exporter.noarch 0:5.68-3.el7            perl-File-Path.noarch 0:2.09-2.el7          perl-File-Temp.noarch 0:0.23.01-3.el7   
  perl-Filter.x86_64 0:1.49-3.el7              perl-Getopt-Long.noarch 0:2.40-3.el7         perl-HTTP-Tiny.noarch 0:0.033-3.el7          perl-IO-Compress.noarch 0:2.061-2.el7       perl-Net-Daemon.noarch 0:0.48-5.el7     
  perl-PathTools.x86_64 0:3.40-5.el7           perl-PlRPC.noarch 0:0.2020-14.el7            perl-Pod-Escapes.noarch 1:1.04-293.el7       perl-Pod-Perldoc.noarch 0:3.20-4.el7        perl-Pod-Simple.noarch 1:3.28-4.el7     
  perl-Pod-Usage.noarch 0:1.63-3.el7           perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-4.el7             perl-Storable.x86_64 0:2.45-3.el7           perl-Text-ParseWords.noarch 0:3.29-4.el7
  perl-Time-HiRes.x86_64 4:1.9725-3.el7        perl-Time-Local.noarch 0:1.2300-2.el7        perl-constant.noarch 0:1.27-2.el7            perl-libs.x86_64 4:5.16.3-293.el7           perl-macros.x86_64 4:5.16.3-293.el7     
  perl-parent.noarch 1:0.225-244.el7           perl-podlators.noarch 0:2.5.1-3.el7          perl-threads.x86_64 0:1.87-4.el7             perl-threads-shared.x86_64 0:1.43-6.el7     rsync.x86_64 0:3.1.2-4.el7              
 
完了しました!


とりあえずMariaDBのインストールまで完了しましたので今回はここまでにしたいと思います。
postfix がアンインストールされたのは想定外だったのですが、MariaDBを使用するのが初めてなのでWordPessが動くまでに、別の課題が発生する可能性もありそうですね。

次回はApacheとPHPのインストールをおこなっていきます。