WordPressのサイト変更

 WordPressはインストールした時のサイトアドレスがDBに登録され以降そのアドレスにアクセスしようとするため、サイトアドレスが変更になると登録データや管理画面にアクセスできない、つまり動作不能となるため、サイトアドレスが変わった場合は必要個所を書き換えておく必要がある。  今回は以下のページを参考にさせていただき試してみた。
 今回は192.168.0.70でインストールした後アドレスを192.168.0.75に変更したことへの対応である。。
今回参考にさせていただいたサイト

 まずデータベースmysqlに接続する。
pi@raspberrypi:~ $ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.37-MariaDB-0+deb9u1 Raspbian 9.0

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)]> use wpdb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
 現状確認のため登録されているサイト名を検索
MariaDB [wpdb]> select * from wp_options where option_name = 'siteurl';
ERROR 1054 (42S22): Unknown column 'optio_name' in 'where clause'
MariaDB [wpdb]> select * from wp_options where option_name = 'siteurl';
+-----------+-------------+--------------------------+----------+
| option_id | option_name | option_value             | autoload |
+-----------+-------------+--------------------------+----------+
|         1 | siteurl     | http://192.168.0.70/blog | yes      |
+-----------+-------------+--------------------------+----------+
1 row in set (0.01 sec)
これを新しいサイト名(IPアドレス)に変更する。
MariaDB [wpdb]> update wp_options set option_value ='http://192.168.0.75/blog' where option_name = 'siteurl';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

変更できていることを確認する。
MariaDB [wpdb]> select * from wp_options where option_name = 'siteurl';
+-----------+-------------+--------------------------+----------+
| option_id | option_name | option_value             | autoload |
+-----------+-------------+--------------------------+----------+
|         1 | siteurl     | http://192.168.0.75/blog | yes      |
+-----------+-------------+--------------------------+----------+
1 row in set (0.01 sec)

MariaDB [wpdb]> exit
Bye
 この操作で管理画面へのアクセスが可能となった。ただしサイト名が文章に埋め込まれているような場合もあるのでその場合はコマンドラインでWordPressのデータベースを操作するツールを利用する必要があるようである。

 それはwordprssのコマンドラインインターフェースであるwp-cliを使う方法である。
 まず、wp-cliをダウンロードする。
pi@raspberrypi:~ $ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 5294k  100 5294k    0     0  1620k      0  0:00:03  0:00:03 --:--:-- 1620k
動作確認
pi@raspberrypi:~ $ php wp-cli.phar --info
OS:     Linux 4.14.98+ #1200 Tue Feb 12 20:11:02 GMT 2019 armv6l
Shell:  /bin/bash
PHP binary:     /usr/bin/php7.0
PHP version:    7.0.33-0+deb9u3
php.ini used:   /etc/php/7.0/cli/php.ini
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /home/pi
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.1.0
ネットの情報と表示されるメッセージは違うが、動いているようではある。

実行権の付与
pi@raspberrypi:~ $ sudo chmod +x wp-cli.phar
pi@raspberrypi:~ $ ls -l
total 16844
-rw-r--r-- 1 pi pi     4110 Mar  9 08:00 test.doc
-rw-r--r-- 1 pi pi       39 Mar  9 05:07 test.php
-rwxr--r-- 1 pi pi   537037 Mar  4 07:44 webalizer-2.23-08-src.tgz
-rwxr--r-- 1 pi pi 11268474 Mar  6 06:44 wordpress-5.1-ja.tar.gz
-rwxr-xr-x 1 pi pi  5421617 Mar 10 23:49 wp-cli.phar
パスが通っている場所に移動 名前はwp

pi@raspberrypi:~ $ sudo mv wp-cli.phar /usr/local/bin/wp

動作確認
pi@raspberrypi:~ $ wp --info

上と同じメッセージが出る
コンテンツにある旧URLを新URLに置き換える
$ wp search-replace '旧url' '新url' --path=WodPressのインストールパス --skip-columns=guid

具体的には
pi@raspberrypi:~ $ wp search-replace 'http://192.168.0.70' 'http://192.168.0.75' --path=/var/www/html/blog --skip-columns=guid
+------------------+-----------------------+--------------+------+
| Table            | Column                | Replacements | Type |
+------------------+-----------------------+--------------+------+
| wp_commentmeta   | meta_key              | 0            | SQL  |
| wp_commentmeta   | meta_value            | 0            | SQL  |
| wp_comments      | comment_author        | 0            | SQL  |
| wp_comments      | comment_author_email  | 0            | SQL  |
| wp_comments      | comment_author_url    | 0            | SQL  |
| wp_comments      | comment_author_IP     | 0            | SQL  |
| wp_comments      | comment_content       | 0            | SQL  |
| wp_comments      | comment_approved      | 0            | SQL  |
| wp_comments      | comment_agent         | 0            | SQL  |
| wp_comments      | comment_type          | 0            | SQL  |
| wp_links         | link_url              | 0            | SQL  |
| wp_links         | link_name             | 0            | SQL  |
| wp_links         | link_image            | 0            | SQL  |
| wp_links         | link_target           | 0            | SQL  |
| wp_links         | link_description      | 0            | SQL  |
| wp_links         | link_visible          | 0            | SQL  |
| wp_links         | link_rel              | 0            | SQL  |
| wp_links         | link_notes            | 0            | SQL  |
| wp_links         | link_rss              | 0            | SQL  |
| wp_options       | option_name           | 0            | SQL  |
| wp_options       | option_value          | 1            | PHP  |
| wp_options       | autoload              | 0            | SQL  |
| wp_postmeta      | meta_key              | 0            | SQL  |
| wp_postmeta      | meta_value            | 0            | SQL  |
| wp_posts         | post_content          | 2            | SQL  |
| wp_posts         | post_title            | 0            | SQL  |
| wp_posts         | post_excerpt          | 0            | SQL  |
| wp_posts         | post_status           | 0            | SQL  |
| wp_posts         | comment_status        | 0            | SQL  |
| wp_posts         | ping_status           | 0            | SQL  |
| wp_posts         | post_password         | 0            | SQL  |
| wp_posts         | post_name             | 0            | SQL  |
| wp_posts         | to_ping               | 0            | SQL  |
| wp_posts         | pinged                | 0            | SQL  |
| wp_posts         | post_content_filtered | 0            | SQL  |
| wp_posts         | post_type             | 0            | SQL  |
| wp_posts         | post_mime_type        | 0            | SQL  |
| wp_term_taxonomy | taxonomy              | 0            | SQL  |
| wp_term_taxonomy | description           | 0            | SQL  |
| wp_termmeta      | meta_key              | 0            | SQL  |
| wp_termmeta      | meta_value            | 0            | SQL  |
| wp_terms         | name                  | 0            | SQL  |
| wp_terms         | slug                  | 0            | SQL  |
| wp_usermeta      | meta_key              | 0            | SQL  |
| wp_usermeta      | meta_value            | 0            | PHP  |
| wp_users         | user_login            | 0            | SQL  |
| wp_users         | user_nicename         | 0            | SQL  |
| wp_users         | user_email            | 0            | SQL  |
| wp_users         | user_url              | 0            | SQL  |
| wp_users         | user_activation_key   | 0            | SQL  |
| wp_users         | display_name          | 0            | SQL  |
+------------------+-----------------------+--------------+------+
Success: Made 3 replacements.
 これでwordpressが動けば成功である。