wordpress の引っ越し作業で画面真っ白の対処
mysql データを MariaDB へインポートできたので
次にvirtualhost の設定
1 | vim /etc/httpd/conf .d /wp .developapp.net.conf
|
というように
ドメイン名.conf
というファイルを作成
内容は
1 2 3 4 5 6 | <VirtualHost *:80>
ServerName wp.developapp.net
DocumentRoot /var/www/html/wp .developapp.net
ErrorLog logs /wp .developapp.net-error_log
CustomLog logs /wp .developapp.net-access_log combined env =!no_log
< /VirtualHost >
|
保存したら
で apache を再起動
しかし
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

と表示される
エラーで検索し
CentOS7 PHP7.1.2 お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
を参考に
を実行しても何もでないので
1 2 3 | yum install yum-utils
yum-config-manager -- enable remi-php71
yum install php-mysqlnd
|
で必要なパッケージをインストール後
を実行し
がでたのを確認したら
で apache を再起動したけどかわらず
おそらく wordpress のバージョンが古すぎることが原因
とりあえず
1 | wget http: //ja .wordpress.org /latest-ja .zip
|
で最新のwordpress をダウンロード
1 2 3 4 5 6 | mv wordpress /var/www/html/wp .developapp.net
chown -R apache:apache /var/www/html/wp .developapp.net/
cd /var/www/html/wp .developapp.net/
cp wp-config-sample.php wp-config.php
vim wp-config.php
systemctl restart httpd
|
今度は
データベース接続確立エラーになった

ログインユーザに問題があるとおもい
wordpress ユーザで mysql でログインしようとしてもできないので
サーバー移動による hostname があやしいと思い
root で mysql にログインして調べたら
1 | select host, user from mysql. user ;
|
を実行すると
host が % になっている
念の為
1 | show variables like 'hostname' ;
|
で hostname もみてみたら
やはり違っている
このあたりから調べることに
Warning: mysqli_real_connect(): (HY000/1045): Access denied for user ‘snowpool’@’localhost’ (using password: YES) in /var/www/html/wp.developapp.net/wp-includes/wp-db.php on line 1531
つまり ユーザに問題がありそう
MariaDB(MySQL)の基本的なユーザー系コマンド
で調べ
1 | SELECT user ,host FROM mysql. user ;
|
でユーザ一覧をみたら
ユーザは存在しているけど
root 以外は
1 | SHOW GRANTS FOR '' @ 'hostname' ;
|
で権限を確認しても
1 | ERROR 1141 (42000): There is no such grant defined for user 'snowpool' on host 'hostname'
|
となるし
ログインしようとしても
1 | ERROR 1045 (28000): Access denied for user 'snowpool' @ 'localhost' (using password : YES)
|
となってしまう
Hostを指定しないで作ったuser1はHostが「%」になっているので
とあるので
https://teratail.com/questions/45324
や
MySQLの権限の確認や外部からのアクセス
に権限について載っているのをみると
どうやら、host の指定をしていないのが原因っぽい
とりあえず権限の確認
で現在のユーザの権限が確認できる
root ユーザに関してはログインしてコマンド実行することでみれたけど
wordpress のユーザはログインすることができかったため
DBの破損の確認をしたいので
テーブルが壊れているかと思ったので、mysqlcheckで修復したときのメモ
を参考に
を行ったところ
すべてOKで破損はなし
1 | SELECT user ,host FROM mysql. user ;
|
でユーザ一覧をだしてみたけど
host が % になっているのでたぶんこれが原因っぽい
一度、移行前のサーバーへ ssh ログインし
1 | show grants for 'snowpool' @ '%' ;
|
では権限確認できるのに対し
インポート先の MariaDBで
1 | show grants for 'snowpool' @ '%' ;
|
だと
1 | ERROR 1141 (42000): There is no such grant defined for user 'snowpool' on host '%'
|
となる
MySQL] MySQL5でHostに’%’があるとリモート接続できない?
によれば
host に % にするのは mysql のワイルドカードで
どこからの接続でも許可するというもの
今使っているDBが MariaDB
最初は権限やセキュリティの仕様が違うのかとおもったけど
マシンのホスト名やOSが違うため
slaveの再設定、追加(オンラインバックアップ)
をみてみたら
別サーバーで、レプリケーションが行われているmysqlからダンプして
フルバックアップファイルを利用して、slaveを設定しなおす場合に、
mysqlの接続アカウント情報も書き変わってしまう。
そのため、元々masterに設定されていた接続アカウントと
ダンプファイルのアカウント情報が違う場合には、アカウント情報を再設定してあげる必要がある。
とのこと
ということで再度アカウントを別のもので作成して実験
1 | grant all privileges on wp_my_wordpress* to snowpool@localhost identified by "password" ;
|
これで wp-config.php の設定を変更したけど画面が真っ白
念の為
1 | mysqldump -u root -p wp_my_wordpress > wordpress.sql
|
でバックアップを作成しておく
なお復旧させるときには
1 | create database wordpress;
|
で新規作成
1 | mysql -u root -p wordpress < wordpress.sql
|
でインポートすれば復旧可能
1 | mysqlcheck -c wordpress -u root -p
|
で破損をチェックしOKを確認するのも忘れずに
なお、画面が真っ白になった原因は
最新のwordpress にした場合、該当するテーマがないため
wp-config.php での設定をせず
ドメインにアクセスし、ブラウザからインストールし
ダッシュボードへログインしてテーマ設定をすれば
wordpress の表示がされるようになります