CentOS8にWordPressのテスト環境を構築してみた
-
カテゴリ:
- サーバ
最近CentOS8が出たということで、試しに触ってみることにしました。
ちょうど同時期にWordPressの環境を構築していじっていたので、その流れでCentOS8にWordPressのテスト環境を構築してみたいと思います。
環境構築する上で今回使うもののバージョン情報は以下の通りです。
- Virtualbox: 6.0.10
- CentOS: CentOS Linux release 8.0.1905 (Core)
- Apache: 2.4.37
- PHP: 7.2.11
- MariaDB: 15.1
CentOS8+VirtualBoxのインストール
CentOS8をダウンロードしてきます。
https://ftp.riken.jp/Linux/centos/8.0.1905/isos/x86_64/
その中の「CentOS-8-x86_64-1905-dvd1.iso」をダウンロードしてください。6GBあるので結構ダウンロードには時間がかかります。
次にVirtualBoxなどの仮想環境構築ツールでCentOS8をインストールしていきます。
左上の「新規」をクリック。
名前:CentOS8
マシーンフォルダー:デフォルト
タイプ:Linux
バージョン:Red Hat(64-bit)
にして次へをクリック。
足りないかもしれないけど、とりあえずメモリは1~2GBを設定。
「仮想ハードディスクを作成する」を選択。
「VDI(VirtualBox Disk Image)」を選択。
可変サイズを選択して次へをクリック。
仮想環境のハードディスクを設定します。OSが6~8GBあるので、余裕を見て16BGにしておきます。
そのままの状態で「作成」をクリック。
そして、CentOS8を選択した状態で「起動」をクリックします。
「起動ハードディスクの選択」が出てくるので、最初にダウンロードしたCentOS8のイメージファイルを選択してください。
そして、「起動」ボタンをクリックしてください。
「Install CentOS Linux 8.0.1905」を選択
インストールの初期設定をしていきます。インストール先を選択します。
「ATA VBOX HARDDISK」を選択して完了をクリック。
ネットワークとホスト名の設定で、左側のトグルをオンにしてください。
「ソフトウェアの選択」をクリックし、その後ベース環境の中から「最小限のインストール」を選択してください。
完了を押したら、先ほどの画面に戻るので「インストールの開始」をクリックしてください。
OSのインストールが開始されます。
インストール中にroot権限のパスワードを設定してください。
さらに、一般ユーザを設定します。ここでは「wordpress」というユーザを作成しました。
設定すると、インストールが再開されます。
来た!
このまま再起動すると再度インストールが開始してしますので、思い切って仮想マシンを停止!
ストレージにある「CentOS8-8-x86=84-1905dvd1.iso」などとあるISOイメージを除去してください。
再度仮想マシンを起動します。
やっとCentOS8をインストールしてログインできました。
とりあえずは、ll、pwd、unameコマンドは使えますね
これからWordPressの環境を構築していきます。
WordPressの環境構築
下準備
OSのバージョン確認
[wordpress@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
タイムゾーンの設定をしておきます。
[wordpress@localhost ~]$ sudo su - timedatectl set-timezone Asia/Tokyo
[注意]
もし上記コマンド実行時に「sudoers ファイル内にありません。この事象は記録・報告されます」というメッセージが出たら、別途設定が必要です。
設定手順は下記記事にまとめてあります。
【CeontOS】「sudoers ファイル内にありません。この事象は記録・報告されます」というメッセージが出た時の対処
CentOS7まではyumコマンドを使ってましたが、CentOS8ではdnf コマンドを使います。
、、、と思いきや、普通にyumコマンドも使えるっぽい。(;^^)
実はyumコマンドに見えて、中身は/usr/bin/dnf-3 へのシンボリックリンクになっていました。(;・・)
試しにオプションを見てみます。
[wordpress@localhost ~]$ dnf -h
usage: dnf [options] COMMAND
主要コマンドの一覧:
alias List or create command aliases
autoremove 当初は依存関係としてインストールされた不要なパッケージをすべて削除します
・・・
upgrade システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします
upgrade-minimal システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアップグレードします
プラグインコマンドの一覧
builddep Install build dependencies for package or spec file
changelog Show changelog data of packages
・・・
repomanage rpm パッケージのディレクトリーを管理します
reposync リモート repo からすべてのパッケージをダウンロードします
オプションの引数:
-c [config file], --config [config file]
設定ファイルの場所
-q, --quiet 静かな操作
・・・
--cves CVES 特定の CVE の修正に必要なパッケージを更新に含めます
--sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}
深刻度に一致するセキュリティー関連パッケージを更新に含めます
--forcearch ARCH アーキテクチャーの使用を強制します
ヘルプが事細かに出るようになりましたね。結構量が多くてぴっくり!
余りにも数が多かったので一部省略しています。全体を見たい方は記事の最後の補足事項の中で全部載せています。
念のためdnfの最新にアップデート。
[wordpress@localhost ~]$ sudo dnf update
まずSELinuxの無効化しておきます。
[wordpress@localhost ~]$ sudo vi /etc/selinux/config
#SELINUX=enforcing
上記に「#」を付けてコメントアウトし、下記を追記。
SELINUX=disabled
Apache
Apache のインストールをインストールします。
[wordpress@localhost ~]$ sudo dnf -y install httpd
Apacheの設定変更
[wordpress@localhost conf]$ sudo vi httpd.conf
#User apache
#Group apache
上記に「#」を付けてコメントアウトし、下記を追記。
User wordpress
Group wordpress
自動起動の設定
[wordpress@localhost ~]$ sudo systemctl enable httpd
Apacheの起動
[wordpress@localhost ~]$ sudo systemctl start httpd
Apacheの状態確認
[wordpress@localhost ~]$ sudo systemctl status httpd
※実行してみるとわかりますが結果は標準出力ではなく、vimのようにエディターのような形で表示されるっぽい。
バージョンの確認
[wordpress@localhost ~]$ httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Jul 30 2019 19:56:12
PHP
PHPをインストールします。
現時点でインストール可能なPHPを確認。
[wordpress@localhost ~]$ sudo dnf -y install php-mysqlnd php
バージョンの確認
[wordpress@localhost ~]$ php -v
PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
MariaDB(MySQL)
MariaDB(MySQL)をインストールします。
[wordpress@localhost ~]$ sudo dnf -y install mariadb-server
自動起動設定
[wordpress@localhost ~]$ sudo systemctl enable mariadb
MariaDBの起動
[wordpress@localhost ~]$ sudo systemctl start mariadb
MariaDBの状態確認
[wordpress@localhost ~]$ sudo systemctl status mariadb
MariaDBのバージョン確認
[wordpress@localhost ~]$ mysql --version
mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1
Wordpress用のデータベース作成と権限の設定を行います。
[wordpress@localhost html]$ mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.3.11-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> GRANT ALL ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> exit
WordPress
Wordpressのダウンロードの前に、下準備といしてwgetとtarをインストールします。
[wordpress@localhost ~]$ sudo dnf -y install wget tar
最新のWordpressをダウンロードします。
[wordpress@localhost ~]$ cd /var/www/html
[wordpress@localhost ~]$ sudo wget https://ja.wordpress.org/latest-ja.tar.gz
ダウンロードしたファイルを解凍します
[wordpress@localhost ~]$ sudo tar xvf latest-ja.tar.gz
権限の変更
[wordpress@localhost ~]$ sudo chown -R wordpress:wordpress .
あとはブラウザより「http://xx.xx.xx.xx/wordpress/」にアクセスして画面から設定を行います。以下のWindows10の設定と同じなので参考にしてください。
補足事項
※1.dnfのヘルプ
[wordpress@localhost ~]$ dnf -h
usage: dnf [options] COMMAND
主要コマンドの一覧:
alias List or create command aliases
autoremove 当初は依存関係としてインストールされた不要なパッケージをすべて削除します
check packagedb の問題を確認します
check-update 利用可能なパッケージのアップグレードを確認します
clean キャッシュデータを削除します
deplist パッケージの依存関係とこれを提供するパッケージがどれかを一覧表示します
distro-sync インストール済みパッケージを利用可能な最新バージョンに同期します
downgrade パッケージをダウングレードします
group グループ情報を表示または使用します
help 有用な使用方法のメッセージを表示します
history トランザクション履歴を表示、または使用します
info パッケージもしくはパッケージのグループについての詳細を表示します
install システムに 1 つのパッケージまたは複数のパッケージをインストールします
list パッケージまたはパッケージのグループを一覧表示します
makecache メタデータキャッシュを生成します
mark インストール済みパッケージをユーザーがインストールしたとマークするか、またはマークをはずします。
module モジュールと対話します。
provides どのパッケージが特定の値を提供するか見つけます
reinstall パッケージを再インストールします
remove システムから 1 つのパッケージまたは複数のパッケージを削除します
repolist 設定済みのソフトウェアリポジトリーを表示します
repoquery キーワードに一致するパッケージを検索します
repository-packages 特定のリポジトリーのすべてのパッケージに対して、コマンドを実行します
search 特定の文字列のパッケージの詳細を検索します
shell 対話式 DNF シェルを実行します
swap 1 つの spec を削除およびインストールするために対話式 dnf モッドを実行します
updateinfo パッケージに関する勧告を表示します
upgrade システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします
upgrade-minimal システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアップグレードします
プラグインコマンドの一覧
builddep Install build dependencies for package or spec file
changelog Show changelog data of packages
config-manager dnf 設定オプションおよびリポジトリーの管理
copr Copr リポジトリーとの対話。
debug-dump ファイルにインストール済みの rpm パッケージに関するダンプ情報
debug-restore debug-dump ファイルに記録されたパッケージを復元します
debuginfo-install debuginfo パッケージのインストール
download 現在のディレクトリーにパッケージをダウンロードします
needs-restarting 再起動が必要な更新済みバイナリーを決定します
playground Playground リポジトリーとの対話。
repoclosure リポジトリーの未解決の依存関係の一覧を表示します
repodiff List differences between two sets of repositories
repograph ドット形式でパッケージの依存関係グラフ全体を出力
repomanage rpm パッケージのディレクトリーを管理します
reposync リモート repo からすべてのパッケージをダウンロードします
オプションの引数:
-c [config file], --config [config file]
設定ファイルの場所
-q, --quiet 静かな操作
-v, --verbose 詳細な操作
--version DNF バージョンを表示して終了します
--installroot [path] インストール root を設定します
--nodocs ドキュメントをインストールしません
--noplugins すべてのプラグインを無効にします
--enableplugin [plugin]
名前ごとにプラグインを有効にします
--disableplugin [plugin]
名前ごとにプラグインを無効にします
--releasever RELEASEVER
設定ファイルと repo ファイルの $releasever の値をオーバーライドします
--setopt SETOPTS 任意の設定オプションと repo オプションを設定します
--skip-broken パッケージをスキップして depsolve 問題を解決します
-h, --help, --help-cmd
コマンドのヘルプを表示する
--allowerasing 依存関係を解決するために、インストール済みパッケージの消去を許可します
-b, --best トランザクションにおいて利用可能な最適なパッケージバージョンを試してください。
--nobest do not limit the transaction to the best candidate
-C, --cacheonly システムキャッシュから全面的に実行し、キャッシュは更新しません
-R [minutes], --randomwait [minutes]
コマンドの最大待ち時間
-d [debug level], --debuglevel [debug level]
出力レベルをデバッグします
--debugsolver ファイルに詳細な解決結果をダンプします
--showduplicates 一覧/検索コマンドで repo の重複を表示します
-e ERRORLEVEL, --errorlevel ERRORLEVEL
エラー出力レベル
--obsoletes dnf の廃止されたアップグレードの処理ロジックを有効にするか、情報、一覧、repoquery を廃止するパッケージの機能を表示します
--rpmverbosity [debug level name]
rpm の出力レベルをデバッグします
-y, --assumeyes すべての質問に「はい」(yes) と自動的に答えます
--assumeno すべての質問に「いいえ」(no) と自動的に答えます
--enablerepo [repo]
--disablerepo [repo]
--repo [repo], --repoid [repo]
id または glob により特定のリポジトリーだけを有効にします。複数回指定することが可能です
--enable, --set-enabled
enable repos with config-manager command
(automatically saves)
--disable, --set-disabled
disable repos with config-manager command
(automatically saves)
-x [package], --exclude [package], --excludepkgs [package]
名前または glob ごとにパッケージを除外します
--disableexcludes [repo], --disableexcludepkgs [repo]
excludepkgs を無効にします
--repofrompath [repo,path]
追加のリポジトリーに対するラベルおよびパスは、複数回指定することが可能です。
--noautoremove もはや使用されていない依存関係の削除を無効にします
--nogpgcheck disable gpg signature checking (if RPM policy allows)
--color COLOR 色を使うかどうか制御します
--refresh コマンド実行前にメタデータを期限切れに設定します
-4 IPv4 アドレスのみを解決します
-6 IPv6 アドレスのみを解決します
--destdir DESTDIR, --downloaddir DESTDIR
パッケージをコピーするディレクトリーを設定します
--downloadonly パッケージのみをダウンロードします
--comment COMMENT トランザクションにコメントを追加します
--bugfix バグ修正関連パッケージを更新に含めます
--enhancement 機能拡張関連パッケージを更新に含めます
--newpackage newpackage の関連パッケージを更新に含めます
--security セキュリティー関連パッケージを更新に含めます
--advisory ADVISORY, --advisories ADVISORY
特定のアドバイザリーの修正に必要なパッケージを更新に含めます
--bzs BUGZILLA 特定の BZ の修正に必要なパッケージを更新に含めます
--cves CVES 特定の CVE の修正に必要なパッケージを更新に含めます
--sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}
深刻度に一致するセキュリティー関連パッケージを更新に含めます
--forcearch ARCH アーキテクチャーの使用を強制します
※2.インストール中に画面がバグる(虹色のノイズ画面)時の対処法
CentOS8のインストール時当初、何度やってもバグってしまいます。
以下のようなカオスな画面が表示されます。最初かなりビビりました。w(´゚д゚`)
ネットで調べたら解決策を見つけました。!
原因として、VirtualBoxのバージョンが古かった(Ver5.2.22)のと、グラフィックコントローラーの設定を「VBoxSVGA」にしていたのが分かった模様。
そのため解決策として、
- 最新のVirtualBoxを使う(Ver6.0.10)
- グラフィックコントローラーとしてVBoxSVGAではなく「VMSVGA」を選択することでした。
上記を実施したところ、うまくインストールができました。\(^_^)/