こんにちは、こんばんは、AKデザインの円盤です。
本日はワードプレスでの更新ボタンを押すと、PHPのエラー、Fatal Errorが出てしまってからの復帰方法を備忘録しておきます。
自分のブログでこれになるなら、自分だけの自爆の話で済みますが、お客さんのサイトでこれになると「やべー!」になりますね。
それではいってみましょう。
ワードプレスにログインして、ダッシュボードの更新ボタンを押すと…
というわけでAirPods Maxのレビューでも書こうかなとワードプレスにログインしてみたのですが
ダッシュボードに何やら更新しろ的なボタンが出ておりました。
出てたら気になりますよね。
そんでもってPHPのバージョンが古いとか書いてたら、「じゃあちょっと押してみようかな」なんてなっていきますよね。
はい、押してみたんです。
Fatal error: Uncaught Error: Call to undefined function block_has_support() in....
なんだと…!?
ワードプレスの画面がおかしくなる。
もちろんブログも同じく表示が、この画面と同じPHPエラーになる。
これか、噂の真っ白になるというやつか。
真っ白じゃないけどPHPエラーになる。
ダッシュボードにも辿り着けない困った状況である。
もちろんこのトラブルシューティングのリンクは全く参考になりません。
どうしましょ;;
何故こうなってしまったのか原因
こうなる前に自分が行った作業を思い起こす。
- ワードプレスにログインした
- 更新ボタン押した
- 多分PHPのバージョンアップを押した
- プラグインも全チェック入れて押した
これらを行った結果、エックスサーバー内に入っているワードプレスの整合性が取れなくなってエラーになったのだと思われる。
PHPを勉強しているのだが、ファイル同士の連携が取れなくなると出てくるエラー。
よーく見ると行末尾にエラーが出てる行を教えてくれている。
今回の場合は下記になっている。
/public_html/wp-includes/block-supports/align.php on line 18
このファイルの18行目がバージョンアップしておかしくなってるよ!と教えてくれているわけ。
ふむふむ、なるほど。
(本人動揺を隠せず泣きそう)
そのファイルを見てみる
ファイル自体はFTPフォルダに入っているので見に行く。
ふむふむ、わかりません。
まだmb_convert_kanaしかわかっていないPHPエンジニアには難しい内容だ!
試しにこのalign.phpを名前の変更してみたが、さらに動かなくなる。
今度は「class-wp-hook.php」がおかしいよ!というエラーが出る。
ファイルが繋がっているのはわかるが、さらにwp-hookを調べていくとwidjetフォルダに繋がっていった。
これは調べていくのは良いが、結局最後はfunction.phpに行き着き、これは行をコメントアウトすれば解決するような話ではないと理解する。
一応参考にさせてもらったブログさんをご紹介しておきます。
更新したプラグインを消せばよい?
こちらFTPからpluginフォルダの削除を試してみましたが関係なし。
PHPのバージョンアップなので、wordpress自体に問題発生ということになる。
プラグイン1つだけ更新しておかしくなった場合はこれで解決するんだけどね。
(プラグインの一括更新はやらない方がいい)
WordPressだけを再インストールする方が早い
「これは入れ直した方がはえーなw」
結局この結論に行き着く。
しかしブログの記事や画像が消えてもらったら非常に困る。
もちろんテーマも消えてもらっては困る。そこそこCSS触ったりしているから。
というわけで、再インストールする前に必要なところをバックアップ。
FFFTPで接続しましょう。
ファイル数多すぎて、DL中断されまくるならFilezilla使いましょう。
wp-content:ここに画像やプラグインやテーマが入っています。記事内容によっては画像ファイル数がすごいです。
.htaccess:このファイルが再インストールした後に必要です。これがなかったらJSONエラーなります。記事が表示されない。
wp-config.php:これが超重要。ここにデータベースのパスやユーザー名が記載されている。これをバックアップしなかったら終わる。
上記3つのファイルをきっちりバックアップしましょう。
PCのローカルに保存しましょう。
これら以外はどうでもいいやーは絶対にやめましょう。
(エックスサーバーの機能で自動バックアップはあるかもしれない?そんなものはない?)
wordpress公式から最新のwordpressをダウンロード
公式サイトはこちら。
右上のwordpressを入手ボタンを押すと手に入ります。
この記事を書いていた時は5.8が最新でした。
公式からダウンロードした中身を確認
よく見てみると、wp-config.phpのファイル名が違う。
-sampleが付いている。
これをこのままアップロードしてもデータベースには繋がりません。
ファイル名を「wp-config.php」にして、中身も変更しないといけない。
wp-config-sample.phpの編集内容の仕方も記載します。
中身がこうなっています。
赤文字で書いた部分を、今まで使っていたwordpressのバックアップを取ったwp-config.phpの内容とコピペします。
シングルクォーテーションとかセミコロンとか半角かっこは消してはダメです。PHPの文字です。
必ずその通りにコピペします。
準備が出来たらアップロード!
ではアップロードします。
必ず、今まで動いていたけどおかしくなったwordpressを、全部ダウンロードしてから行ないましょう。
おかしくなったから古い方は要らないはダメです。
今回良い機会だったので、wordpress公式からダウンロードしたファイルをフォルダ単位ごとで上書きして、サイトがどこかのタイミングで正常に表示されるか確認してみました。
しかし結局上手くはいかず、FTP内のwordpress関係のフォルダを全て削除して、公式からダウンロードしたものをアップロードしました。
全部上げた後に、.htaccessを一番上のrootに設置。これがないと動かない。
参考にさせて頂きましたブログはこちら。
これでブログ復活となりました。
エラーから復活するまでの所要時間、調べる時間も含めて2時間くらい。
この2時間の間にこのブログ見に来た人は面白い画面が見れたかも!w
プラグインを入れ直す
このブログを立ち上げた時は、ブログ収益化できたらいいなーなどと8割遊びとwordpressのテーマ編集の実験とエックスサーバーの内容確認でスタートしていました。
実験がてら色々なよくわからないプラグインをたくさん入れておりました。
再インストールする前にプラグインフォルダ見ましたが、これは何のために??というのが多々あったので、良い機会なので全部消して必要なものだけにしました。
要らないプラグインは今回のような更新をするとエラーなる可能性が高いので外しておきましょう!
まとめ
ワードプレスが真っ白になる話はよく聞きます。
オリジナルテーマにしていると、その内容次第ではワードプレスのバージョンアップについてこないようです。
プラグインはその開発者が放置すると、そしてそのプラグインを自動更新にしていたら、ある日ワードプレスのバージョンアップで急に真っ白になるという恐怖。
ワードプレスで納品してください!という、よくわかってないけどワードプレスが良い!というお客さんがこの世からいなくなる日が来ることを祈りますw
まぁこの複雑なメンテナンスで月額課金を取っていくスタイルがweb業界の流行なんでしょうねー。
(直す側からしたらまたかよ面倒クセーなのか、やり方わかってるからウマーなのかw)
もちろん今回ご紹介の方法は、やるなら自己責任で!失敗する場合もあるらしいよ!
ではまた!