◇本稿の構成
前稿のHTTPSサーバーと同じ構成です。DNSサーバーとクライアントも同様です。本稿はHTTPSサーバーを構築済みであることを前提としています。
前稿を終わらせていない場合は先ずはそちらを終了してください。
◇LAMPサーバーでWordPressを構築
・WordPressのダウンロード
先ずはWordPressのダウンロードを行います。latest-ja.tar.gzというファイル名で最新版のWordPressをダウンロード出来ます。
[root@web1 ~]# cd /var/www/html/
[root@web1 html]# curl -O https://ja.wordpress.org/latest-ja.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 20.9M 100 20.9M 0 0 182k 0 0:01:57 0:01:57 --:--:-- 231k
・ダウンロードファイルの展開と所有権の設定
[root@web1 html]# tar xzf latest-ja.tar.gz
[root@web1 html]# chown -R apache:apache wordpress/
[root@web1 html]# chmod +w -R /var/www/html/
・PHPをインストール。
[root@web1 ~]# dnf install -y php
(略)
インストール:
php x86_64 8.0.13-1.el9 appstream 10 k
依存関係のインストール:
nginx-filesystem noarch 1:1.20.1-10.el9 appstream 12 k
php-common x86_64 8.0.13-1.el9 appstream 682 k
弱い依存関係のインストール:
php-cli x86_64 8.0.13-1.el9 appstream 3.1 M
php-fpm x86_64 8.0.13-1.el9 appstream 1.6 M
php-mbstring x86_64 8.0.13-1.el9 appstream 472 k
php-opcache x86_64 8.0.13-1.el9 appstream 512 k
php-pdo x86_64 8.0.13-1.el9 appstream 88 k
php-xml x86_64 8.0.13-1.el9 appstream 138 k
トランザクションの概要
================================================================================
インストール 9 パッケージ
(略)
インストール済み:
nginx-filesystem-1:1.20.1-10.el9.noarch php-8.0.13-1.el9.x86_64
php-cli-8.0.13-1.el9.x86_64 php-common-8.0.13-1.el9.x86_64
php-fpm-8.0.13-1.el9.x86_64 php-mbstring-8.0.13-1.el9.x86_64
php-opcache-8.0.13-1.el9.x86_64 php-pdo-8.0.13-1.el9.x86_64
php-xml-8.0.13-1.el9.x86_64
完了しました!
・WordPressに必要なライブラリのインストール
[root@web1 ~]# dnf install -y php-mysqlnd php-gd
メタデータの期限切れの最終確認: 0:05:37 時間前の 2022年06月12日 17時42分19秒 に 実施しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
php-gd x86_64 8.0.13-1.el9 appstream 46 k
php-mysqlnd x86_64 8.0.13-1.el9 appstream 155 k
(略)
インストール済み:
php-gd-8.0.13-1.el9.x86_64 php-mysqlnd-8.0.13-1.el9.x86_64
完了しました!
・Apacheの再起動
PHPを有効にするためにApacheの再起動を行います。
[root@web1 ~]# systemctl restart httpd
・MySQL代替のMariaDBをインストールする。
CentOS7以降、MySQLに相当するデータベースにMariaDBという派生データベースが提供されているので、MariaDBを使います。
[root@web1 ~]# dnf install -y mariadb mariadb-server
メタデータの期限切れの最終確認: 0:00:07 時間前の 2022年06月12日 17時53分45秒 に 実施しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
mariadb x86_64 3:10.5.13-2.el9 appstream 1.6 M
mariadb-server x86_64 3:10.5.13-2.el9 appstream 9.4 M
依存関係のインストール:
mariadb-common x86_64 3:10.5.13-2.el9 appstream 35 k
mariadb-connector-c x86_64 3.1.13-3.el9 appstream 198 k
mariadb-connector-c-config noarch 3.1.13-3.el9 appstream 11 k
mariadb-errmsg x86_64 3:10.5.13-2.el9 appstream 195 k
mysql-selinux noarch 1.0.4-2.el9 appstream 36 k
perl-DBD-MariaDB x86_64 1.21-15.el9 appstream 152 k
perl-File-Copy noarch 2.34-479.el9 appstream 30 k
perl-Sys-Hostname x86_64 1.23-479.el9 appstream 27 k
弱い依存関係のインストール:
mariadb-backup x86_64 3:10.5.13-2.el9 appstream 6.4 M
mariadb-gssapi-server x86_64 3:10.5.13-2.el9 appstream 21 k
mariadb-server-utils x86_64 3:10.5.13-2.el9 appstream 215 k
トランザクションの概要
================================================================================
インストール 13 パッケージ
(略)
インストール済み:
mariadb-3:10.5.13-2.el9.x86_64
mariadb-backup-3:10.5.13-2.el9.x86_64
mariadb-common-3:10.5.13-2.el9.x86_64
mariadb-connector-c-3.1.13-3.el9.x86_64
mariadb-connector-c-config-3.1.13-3.el9.noarch
mariadb-errmsg-3:10.5.13-2.el9.x86_64
mariadb-gssapi-server-3:10.5.13-2.el9.x86_64
mariadb-server-3:10.5.13-2.el9.x86_64
mariadb-server-utils-3:10.5.13-2.el9.x86_64
mysql-selinux-1.0.4-2.el9.noarch
perl-DBD-MariaDB-1.21-15.el9.x86_64
perl-File-Copy-2.34-479.el9.noarch
perl-Sys-Hostname-1.23-479.el9.x86_64
完了しました!
・MariaDBの起動とサービスの設定
[root@web1 ~]# systemctl start mariadb.service
[root@web1 ~]# systemctl is-active mariadb.service
active
[root@web1 ~]# systemctl enable mariadb.service
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@web1 ~]# systemctl is-enabled mariadb.service
enabled
・firewalldの設定
[root@web1 ~]# firewall-cmd --add-service=mysql --permanent
success
[root@web1 ~]# systemctl restart firewalld.service
[root@web1 ~]# systemctl is-active firewalld.service
active
・SELinuxの設定と確認
[root@web1 ~]# setsebool -P mysql_connect_any on
[root@web1 ~]# setsebool -P selinuxuser_mysql_connect_enabled on
[root@web1 ~]# getsebool -a | grep mysql_connect
mysql_connect_any --> on
mysql_connect_http --> off
selinuxuser_mysql_connect_enabled --> on
・MariaDBの初期設定
パスワードの設定などの初期設定を行います。
[root@web1 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): ←そのままEnterキー。
Switch to unix_socket authentication [Y/n] ←そのままEnterキー。
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y ←Y入力後Enterキー。
New password: ←任意のパスワード入力
Re-enter new password: ←任意のパスワード入力
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] ←以降全ての選択肢でEnterキー。
(略)
・文字コードの設定
日本語環境でWordPressを利用する場合、文字コードを統一する必要があります。WordPressの既定では utf8mbfを使用している為、MariaDBの文字コードも合わせましょう。
[root@web1 ~]# cp -p /etc/my.cnf.d/mariadb-server.cnf{,.org}
[root@web1 ~]# vi /etc/my.cnf.d/mariadb-server.cnf
(略)
[mysqld]
(略)
pid-file=/run/mariadb/mariadb.pid
character-set-server=utf8mb4 #←[mysqld]末尾に左記の行を追加
[root@web1 ~]# cp -p /etc/my.cnf.d/client.cnf{,.org}
[root@web1 ~]# vi /etc/my.cnf.d/client.cnf
[client]
default-character-set = utf8mb4 #←[client]末尾に左記の行を追加
・MariaDBの再起動
設定を反映させる為にMariaDBの再起動を行います。
[root@web1 ~]# systemctl restart mariadb.service
[root@web1 ~]# systemctl is-active mariadb.service
active
・文字コードの確認
[root@web1 ~]# mysql -p
Enter password: ←作成したrootのパスワードを入力します。
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.13-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)]> show variables like 'char%'; ←文字コードの確認
+--------------------------+------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mariadb/charsets/ |
+--------------------------+------------------------------+
8 rows in set (0.001 sec)
MariaDB [(none)]>
以上で文字コードが確認出来ました。
・WordPressのデータベース作成。
MariaDB [(none)]> create database wordpress; ←WordPressのデータベース作成
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> grant all on wordpress.* to wordpress@localhost identified by
'test'; ←WordPressのユーザー有効化とパスワードの設定
Query OK, 0 rows affected (0.005 sec)
MariaDB [(none)]> flush privileges; ←設定の有効化を反映
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> select User,Host from mysql.user; ←MariaDB上のユーザー一覧
+-------------+-----------+
| User | Host |
+-------------+-----------+
| mariadb.sys | localhost |
| mysql | localhost |
| root | localhost |
| wordpress | localhost |
+-------------+-----------+
4 rows in set (0.001 sec)
MariaDB [(none)]> \q ←データベースからの切断
Bye
・GUI画面からインストール
⑴Webサーバーの仮想マシン上のGUIからWebブラウザ(Firefox)を立ち上げ、URLに以下のアドレスを入力します。
https://web1.stream.server/wordpress/
初めてアクセスした際、ブラウザが”Warning Potantial Security Risk Ahead.(警告:潜在的なリスクあり)”と警告を発します。
この場合、ブラウザ上の”Advanced...(詳細情報)”をクリックし、ブラウザの下に移動し”Accept the Risk and Continue(危険性を承知で続行)”をクリックし、サイトにアクセスします。
⑵「WordPressへようこそ。始める前に、以下の項目を知っておく必要があります。」
と表示され、事前説明が記載されています。
「さあ、始めましょう!」をクリックします。
⑶データーベース接続のための詳細情報の入力を求められます。
以下の内容の項目を入力します。
データ名:wordpress
ユーザー名:wordpress
パスワード:MariaDB初期設定時のパスワード(本稿では’test’)
⑷「wp-config.phpファイルに書き込みが出来ません。
手動でwp-config.phpを作成し、中に張り付ける事が出来ます。」
と表示されるので全文をコピーし、GUI上で端末を起動し、指示通りwp-config.phpを作成し、貼り付けます。
[root@web1 ~]# vi /var/www/html/wp-config.php
<?php
/**
* WordPress の基本設定
*
* このファイルは、インストール時に wp-config.php 作成ウィザードが利用します。
* ウィザードを介さずにこのファイルを "wp-config.php" という名前でコピーして
* 直接編集して値を入力してもかまいません。
*
* このファイルは、以下の設定を含みます。
*
* * データベース設定
* * 秘密鍵
* * データベーステーブル接頭辞
* * ABSPATH
*
* @link https://ja.wordpress.org/support/article/editing-wp-config-php/
*
* @package WordPress
*/
// 注意:
// Windows の "メモ帳" でこのファイルを編集しないでください !
// 問題なく使えるテキストエディタ
// (http://wpdocs.osdn.jp/%E7%94%A8%E8%AA%9E%E9%9B%86#.E3.83.86.E3.82.AD.E3.82.B9.E3.83.88.E3.82.A8.E3.83.87.E3.82.A3.E3.82.BF 参照)
// を使用し、必ず UTF-8 の BOM なし (UTF-8N) で保存してください。
// ** データベース設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'wordpress' );
/** データベースのユーザー名 */
define( 'DB_USER', 'wordpress' );
/** データベースのパスワード */
define( 'DB_PASSWORD', 'test' );
/** データベースのホスト名 */
define( 'DB_HOST', 'localhost' );
/** データベースのテーブルを作成する際のデータベースの文字セット */
define( 'DB_CHARSET', 'utf8mb4' );
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( 'DB_COLLATE', '' );
/**#@+
* 認証用ユニークキー
*
* それぞれを異なるユニーク (一意) な文字列に変更してください。
* {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org の秘密鍵 サービス} で自動生成することもできます。
* 後でいつでも変更して、既存のすべての cookie を無効にできます。これにより、す べてのユーザーを強制的に再ログインさせることになります。
*
* @since 2.6.0
*/
define( 'AUTH_KEY', 'KBETNt_GZTha<L$,Yrt98?r%-nDTi~F%<>=^Yw1l55r<7nQcw,A<3C-$z}a5&%8{' );
define( 'SECURE_AUTH_KEY', 'y&f+u[_=JPT>Ep;d(2U2fT5H,#NG!i<e1DQ EJa8W#I^8>++QE)1<z]qN4Fjxg*O' );
define( 'LOGGED_IN_KEY', '}rj}%uF).S?5EyL~~zcSc9.C$qmm~rk>j{uOiy5OA*_!%H4%0^H&O;4cpd,6lS}1' );
define( 'NONCE_KEY', 'GyNrZm<.UKIORVW bA,-Y<8i01&h3si{r#x.lTT};7W[sv*I;
define( 'AUTH_SALT', 'v]hfg&^^/2mN.EP4Sf:NM:0F{&nZa.0heLk$E{rL`#eJol;k<L*cET9:x_:(a$>z' );
define( 'SECURE_AUTH_SALT', '`;@.O3MTfQ-{mfJpDQdp+bGhuv[OQb27ZB#@BxIG|E&KKVHGf?}PSFH; YF[{4]<' );
define( 'LOGGED_IN_SALT', '4ftOz66#gM`L2{i{kjx>-3>7iw,=:Pe4/#GW7s;&kn$Z0]=eD99W{9tIhtYRqn-8' );
define( 'NONCE_SALT', '=Zca>4U1Z+gWZucnC&c=2FMr4*j:`{C|p)[-xIVc#TM4yadK3TO.n2A~Et3]J%o0' );
/**#@-*/
/**
* WordPress データベーステーブルの接頭辞
*
* それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
* インストールすることができます。半角英数字と下線のみを使用してください。
*/
$table_prefix = 'wp_';
/**
* 開発者へ: WordPress デバッグモード
*
* この値を true にすると、開発中に注意 (notice) を表示します。
* テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用 することを強く推奨します。
*
* その他のデバッグに利用できる定数についてはドキュメンテーションをご覧ください 。
*
* @link https://ja.wordpress.org/support/article/debugging-in-wordpress/
*/
define( 'WP_DEBUG', false );
/* カスタム値は、この行と「編集が必要なのはここまでです」の行の間に追加してくだ さい。 */
/* 編集が必要なのはここまでです ! WordPress でのパブリッシングをお楽しみください。 */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
⑸上記phpファイルを作成後、ブラウザを更新するとwp-confg.phpファイルが既に存在している旨が表示されるので、文中の「インストール実行してください」をクリックします。
⑹「ようこそ」が表示後、以下の必要情報を入力します。任意で構いませんが、本稿では例として以下の様に入力します。
・サイトのタイトル:WordPress Test
・ユーザー名:admin
・パスワード:m1w0rdpress!
・メールアドレス:wordpress@mail2.stream.server
・検索エンジンでの表示
「検索エンジンがサイトをインデックスしないようにする」にチェック
本稿ではメールサーバーは構築していない構成なので、メールアドレスは適当で構いません。
上記の設定後、「WordPressのインストール」をクリックします。
⑺「成功しました!」と表示されればWordPressのインストールは成功です。「ログイン」をクリックします。
⑻以下を入力し「ログイン」をクリックします。
ユーザー名またはメールアドレス:admin
パスワード:m1w0rdpress!
⑼管理者ページが表示され、WordPressの記事が書けるようになりました。
◇クライアントマシンから動作確認。
クライアントマシン(又はDNSサーバー)でもGUI画面のブラウザを起動し、https://web1.stream.server/wordpressにアクセスします。
WordPressのブログにアクセス出来れば成功です。
最初は記事がありませんが、管理ページで記事を投稿すれば記事が表示されるようになります。