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」を選択することでした。

上記を実施したところ、うまくインストールができました。\(^_^)/



投稿日:2019-10-10    更新日:2019-10-31

[スポンサーリンク]

[スポンサーリンク]

  
関連記事
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
サイト内検索
プロフィール

プロフィール

[Name : POCO(@PocoIt2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

カテゴリ


タグ

[スポンサーリンク]

最近の記事