WordPressはブログ作成ツールとして、とても扱いやすいです。ですが、1カ所チューニング始めるとあれもこれもいじりたくなってしまうのがいけないところ。先日、ついいじり倒しているうちに出してしまいました「500 Internal Server Error」。はい。画面真っ白です。バックアップはプラグインの「UpdraftPlus - Backup/Restore」で取ってあったから良かったものの、原因が分からずサーバ回りからの総点検となりました。とほほ
本当はこつこつ原因究明しなくちゃいけないのに
基本的なお話をすると500 Internal Server Errorはサーバの内部エラーです。内部といわれもピンと来ませんが、簡単にいえば物理的な呼称というより、プログラムを処理していく主に手続きに問題があるケースが多いようです。
手続きといっても、トラブルの種はあっちこっちにあるので、見た瞬間に「原因はこれ!」と私のような素人プログラマには言い当てることはできません。
一般的に500エラーが起きた時は「.htaccess」の書き方に間違いがあるか、CGI(Common Gateway Interface)と呼ばれる「サーバと外部プログラムの連携ルール」にミスがあることが大半と言われますので、慌てず騒がす手順を探ってミスの種をつぶしていくしかありません。
きっかけはPHPのバージョンアップ
今回、原因は分かっていて、レンタルサーバの管理画面でPHPのバージョンを5.3.xから7.1.Xに上げたことが原因でした。なんでそんなに飛躍的にバージョンアップしてしまったのかというと、「PHP7.1は爆速」「約2倍の性能向上がみられた」と書いてあるサイトがあったからです。無謀なのは分かっていましたが、だってPageSpeed Insightsで普段から「おめーんとこのサイト激遅。いろいろ最適化しろや」って怒られていたんですもの…。
PHP、WordPressの再インストールという愚行に
で、PHP7.1.xにしたのはいいんですが、500エラーの理由が分かりません。レンタルサーバ側の説明では「新しい環境の反映まで数分かかる場合があります」とありますので、待つことしばし。やはり500エラーです。ここでなぜか私は「じゃついでだからWordPressも再インストールしちゃおう」という謎の暴挙にでます。昔から面倒臭くなるとぜーんぶ嫌になってぶん投げてしまう悪い性格が出ました。
「こいつも、こいつも、思いつくところ全部初期化じゃ! どうせバックアップはとってあるしー」。いったんバージョンアップしたPHPを5.3.xに戻し、その後、気軽にWordPressをアンインストール。そして、クリーンな状態からPHPを7.1.xにして、WordPress4.7.xをインストール。
「…あれ、まだ500エラーじゃん」
ちょっとパニックでした。サーバの不具合か? パソコンが悪いのか? FTP覗いてみるとどうなんだ? 1時間、2時間、3時間…ネットで調べたり、知り合いに効いてみたり…。白い画面を前に途方にくれつつ、ふと思ったのが、同じレンタルサーバで使っている別ドメインの方はまだ真っさらで何も処理をしていないことに気付きました。
正常作動するドメイン側から強制上書きしてやる
不具合の原因が分からないから、強制上書き作戦です。もう発想が完全に素人丸出しですね。でも、結果としてはこのやけっぱちが功を奏しました! 上書きにより500エラーは無事解消され、懐かしのログイン画面にたどり着けたのです。やっほーい!
そこからはバックアップファイルを読み込んで、こつこつとリストア作業ですが、処理を待っている間に一体何が500エラーの原因だったんだろうと振り返りました。そして、別ドメインの方に組み込んだWordPressをFFFTPでぽちぽちいじりながら愕然としました。
そうだ、.htaccessだ。
アホですよね。いやもうつくづく自分がいやになりました。500エラーを起こした方の.htaccessにAddHandler php5.3-script .php
の記述ですよ。500エラーが出たら、まずは.htaccessを確認しましょうと分かっていたはずなのに凡ミスも凡ミス。なぜか、まったく.htaccessを見もせず、「えーい!こいつもクリーンインストールだー」と次々被害を拡大させてしまったのです。ため息。
まあ、おかげできれいさっぱりとして余計なごみが無くなった分、動作は快適そのものですが、要らぬ作業で時間を浪費してしまったことには自分自身でがっかりです。みなさんもPHPのバージョンアップの際は気を付けてくださいね。たぶん、こんなミスをするのは私ぐらいと思いますが笑 悲し。CGIなんかは私には手に負えないので、たぶん本当、.htaccess怪しいってすぐ分かりそうなものですよね。