CentOS Stream 8にWordPress6.0をインストールしてみた

|[../](https://qiita.com/taconana/items/d382d08a83a2a67f3b6a) |
|---|


CentOS Stream 8にWordPress6.0をインストールしてみた。


## WordPressのインストール手順

WordPressをダウンロードし、展開する。私の環境では、/opt/php74/webapps/wordpress に配置する。

私は、英語版をインストールした後に日本語版の存在に気付いて、上書きした。日本語版の方がいいと思う。
```
$ cd  /tmp
$# wget https://wordpress.org/latest.tar.gz  		// 英語版
$ wget https://ja.wordpress.org/latest-ja.tar.gz	// 日本語版
$ tar -xzvf latest-ja.tar.gz

$ ls -lag wordpress
$ chown -R nginx:nginx wordpress

$ mv wordpress cd /opt/php74/webapps/
$ cd /opt/php74/webapps/
$ ls -lag 
drwxr-xr-x  5 nginx nginx 4096 2022-05-25 04:02 wordpress
```
## MySQLにWordPress用のDBを作成

MySQL8.0にWordPress用のDB「wp」とユーザー「wpadmin」を作成する。個人的にちょっとパスワード強度を弱めて設定している。
```
$ mysql -uroot -p 
Enter password: ***
> create database wp;

> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wp                 |
+--------------------+
> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
> set global validate_password.length=6;
> set global validate_password.policy=LOW;
> set global validate_password.special_char_count=0;
> flush privileges;
> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 6     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 0     |
+--------------------------------------+-------+

> create user 'wpadmin'@'localhost' identified by 'xxx';     // wpadmin追加
> grant all privileges on wp.* TO 'wpadmin'@'localhost';     // wpadminの権限
> flush privileges;
> select user,host,plugin,authentication_string from user;
+------------------+-----------+-----------------------+------------------------------+
| user             | host      | plugin                | authentication_string        |
+------------------+-----------+-----------------------+------------------------------+
| root             | localhost | mysql_native_password | *C29A55C90BB4C7B53A...       |
| wpadmin          | localhost | mysql_native_password | *9C3244B202BF490143...       |
+------------------+-----------+-----------------------+------------------------------+

> exit;

$ mysql -uwpadmin -p wp
Enter password: xxx
> show tables;
Empty set (0.00 sec)
> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb3                    |
| character_set_connection | utf8mb3                    |
| character_set_database   | utf8mb3                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb3                    |
| character_set_server     | utf8mb3                    |
| character_set_system     | utf8mb3                    |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
```

## WordPressのセットアップ

MySQL8.0にDB「wp」とユーザー「wpadmin」ができたら、ブラウザからアクセスしてみる。私の環境では、http://kankeri.com/wordpress/ である。

Apache httpdではなく、80番ポートでNginxを使うことにする。(私の環境では、httpdと共存させるとSSLの設定でうまく行かなかった。とりあえずhttpdを停止し、Nginxを80番ポートで試してみることにした。httpdとのSSLの共存は、後日調査したい。)

```
$ vi /etc/nginx.conf
...
	server {
	    listen       80 default_server;
	    listen       [::]:80 default_server;
	    server_name  _;
	    root         /opt/php74/webapps;
	    
	    # Load configuration files for the default server block.
	    include /etc/nginx/default.d/*.conf;
	    
	    location / {
	    }
	    error_page 404 /404.html;
	        location = /40x.html {
	    }
	    error_page 500 502 503 504 /50x.html;
	        location = /50x.html {
	    }
	}
$ systemctl stop    httpd		// 一旦停止
$ systemctl restart nginx
```

そして、CentOS上のブラウザ(Chromeなど)からURLに http://kankeri.com/wordpress/ を指定してアクセスする。

外部のWindowsPC上のブラウザからだと、日本語のテキストをコピーする場面で文字化けするので注意のこと。「UTF-8のBOMなし(UTF-8N)で保存できるテキストエディタでないと文字化けする」らしい。CentOS上のブラウザで作業すれば、その心配がなく、単純にコピペできる。

初期状態で http://kankeri.com/wordpress/ にアクセスするとセットアップのウィザードが動作する。指示に従って入力していく。(※セットアップが終わったあとに、同じ kankeri.com/wordpress/ にアクセスすると、初期状態で作成された公開用のページが開く。小鳥が１羽飛んでいるページになる。)

以下の手順では、セットアップウィザードのイメージは、英語版で示しておく。（英語版を入れてしまって、後から日本後版を上書きした経緯がある。上書きしても問題なく動作しているようだ。）

(1) 事前に以下を決めて、[Let's go!]せよとのこと。
- Database name : wp
- Database username : wpadmin
- Database password : xxx
- Database host : localhost

(2) 入力して、[submit]する。

(3) wp-config.phpを作成して、提示のテキスト(入力したDB名などが差し込まれたphpのコード)をごっそりコピーして、[Run the installation]する。
```
$ cd /opt/php74/webapps/wordpress
$ vi wp-config.php 
  # 入力したDB名などが差し込まれたコードをペーストする。
  # 外部のWindowsPC上のブラウザから単純にコピーすると、文字化けする。
$ chown nginx:nginx wp-config.php 
$ ls -lag wp-config*
-rw-r--r--  1 nginx nginx  3001 2021-12-14 17:44 wp-config-sample.php
-rw-r--r--  1 nginx nginx  3273 2022-06-21 17:41 wp-config.php
```
(4) 入力項目を埋めて、[Install WordPress]する。
- Site Title : WordPress Demo      // 適当に
- Username : taconana
- Password : xxx
- Repeat Password (required) : xxx	
- Confirm use of weak password : On
- Your Email : xxx@xxx.com	
- Search engine visibility : On

(5) Success!が出たら、[Log In]する。設定したUsernameとPasswordでログインすると、開発用画面(ダッシュボード)が開く。
```
http://kankeri.com/wordpress/				// 作成して公開する画面
http://kankeri.com/wordpress/wp-login.php	// ログイン画面
http://kankeri.com/wordpress/wp-admin/		// 開発用画面(ダッシュボード)
```
(6) 作成して公開する画面が http://kankeri.com/wordpress/ になる。初期状態で、小鳥が１羽飛んでいるページになる。

ブラウザ上で開発したコードや設定で、ただちに公開できる。切り替えもメニューからできる。なるほど、WordPressって、そういうものなのか。WordPressのシェアは、全ウェブサイトの43.2%、CMSの65.2%という値だそうだ。「2022年4月からWordPressのシェアが減少を始めた」との報告もあるな。少し、使ってみようかな。

(7) MySQLのテーブルをみると、いくつか作成されている。
```
$ mysql -uwpadmin -p wp
Enter password: xxx
> show tables;
+-----------------------+
| Tables_in_wp          |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+

> select * from wp_users;
+----+------------+------------+-------------+------------------------------+
| ID | user_login | user_pass  | user_email  | user_url                     |
+----+------------+------------+-------------+------------------------------+
|  1 | taconana   | $P$BANB... | xxx@xxx.com | http://kankeri.com/wordpress |
+----+------------+------------+-------------+------------------------------+
```
今日はとりあえずここまで。

|[../](https://qiita.com/taconana/items/d382d08a83a2a67f3b6a) |
|---|