カテゴリー
blog

????新サーバー移設での????「500エラー」地獄????

hostsの書き換えが反映されているのかいないのか? に悩んだ一ヶ月については前回のブログで書いたけれど、そもそも、書き換えが反映されたか解らない状態だったのは「新旧サイトともに同じく表示されている」から解らなかったワケですが、その前に、実はかなりの期間「500エラー」に苦しんでいた事がありました。wordpressを使うものにとって「500エラー」はお馴染みのものですが、それでもやっぱり、食らうと焦る????????

500エラー

500エラーというのは、こういうので↓

heteml.jpでお馴染みの画面。500エラー

僕はヘテムルというレンタルサーバーを借りているので、そこでは、こういうエラー画面になるが、他にも
こんなのとか、

こんなのも

色々あります。

ようは、「ダメです!」って事で、サイトのレイアウトが崩れて表示されるのではなく、「まるで表示されない」のでとても悲しい。全否定された感じね。

.htaccessに記したphpのバージョンが問題だったようだ

まず、phpというのがあって、それは次のようなもの。

PHPとは動的にWebページを生成することができるサーバーサイドのスクリプト言語です。他のプログラミング言語と比較して仕様や文法が簡単なため習得しやすいと言われています。またMySQLなどのデータベースとの連携が容易なことなどから、WordPressを含めたWebアプリケーションの開発にもよく使われる有名なスクリプト言語でもあります。(引用:「カゴヤのサーバー研究室

で、何が理由だったか判明したのは、
.htaccessで指定していたphpのバージョンが新サーバーで扱っていないバージョンだったということ。
僕の契約してるレンタルサーバーだと、新サーバーで扱えるphpのバージョンは(2020年8月6日現在)、

モジュール版
ver 7.4

CGI 版
ver 7.4
ver 7.3
ver 7.1
ver 5.6

であり、旧サーバーで使えるphpのバージョンは、

CGI 版
ver 7.1
ver 7.0
ver 5.6
ver 5.4
ver 5.3

だった。ワードプレスのサイトでは、

WordPress 自体は PHP のはるか昔のバージョン 5.6.20 以降から動作しますが (現在の推奨バージョンは 7.4 ですから、ものすごい後方互換性です)、使っているテーマやプラグインがどのバージョンで動作するかまでは分かりません。(引用:WordPress.org)

と言っています。

はるか昔のバージョン

とまで言われてるので、いやはやホントにとっとと「phpは最新に更新しやがれよ!」ということだったようです。

僕の旧サーバーでは、php5.4を使っているサイトが多く、それを.htaccessで指定していた為に、新サーバーでは表示されず「500エラー」となった。

だが、問題は、だからといって、phpのバージョン指定を.htaccessで、上げればいいのか?というとそれも怖い。何故なら、そのphpのバージョンに、果たしてワードプレスのバージョンが、使っているワードプレスのプラグインのバージョンが対応しているのか?という問題があるから。

AddHandler php7.1-script .php

こんな一分を.htaccessに記述して指定する。

コントロールパネルで指定出来る事により生じた問題

まずは、リスクを減らす為に(というか、常識なのだが)、ワードプレスを最新バージョンにアップデートして、プラグインも全て最新にして、それでphpバージョンを少しずつ上げて行った。そうすると、旧サーバーで表示されたので、新サーバーで試したらちゃんと表示されたので良かった良かった、に至るワケです。

しかし、また500エラー?!

だが、新サーバーでは、phpのバージョンはサーバーのコントロールパネルで指定出来るようになってる。つまり、.htaccessで指定する必要がない。そして、両方で指定した場合は、.htaccessが有効になる。

しかし、コントロールパネルでの指定と.htaccessでの指定のphpのバージョンが違った場合は、「エラーになる」場合がある。とのこと。ふむ。それかなぁ。

と思って揃えてみたが違った。結果、
俺が作った「.htaccess」にBOMが入っていたらしい。トホホ。

このBOMというのは、UTF-8で形式でテキストファイル(hostsも、.htaccessも)保存した時に「BOM」の有無が生じるらしい。秀丸エディタで「名前をつけて保存」すれば、UTF-8形式を選ぶと「BOMを付ける」というチェックボックスが出てくる。それで解る。

だが、問題なのは、Windowsの場合、メモ帳で開く事が往々にしてあるからだ。メモ帳で、UTF-8保存すると「漏れなくBOM付き」となる。それを直してftpソフトで今一度アップロードして、改善された。

かくして、時間はかかったものの、全ては「php7.4モジュール版」に対応出来たので(かなり遅いですよね、スイマセン)、良かった良かった、と思うことにします。

ま と め 1
.htaccessは、UTF-8で保存する時はBOMが付かないように気をつけてね!付くと500エラーが待ってるよ!

ま と め 2
また、.htaccessで指定しても、その下の階層のフォルダの中に.htaccessがあれば、そっちが優先されるからね!エラーが出ておかしい!と思ったら下の階層の.htaccessもチェックだよ!

(Visited 473 times, 1 visits today)

作成者: 宮川賢

何しろ、インプットを多くしないとアウトプットばかりだと枯渇しちゃうし、ヤバいのでまずは読書を。そのためにソロキャンプや旅行や仕事も頑張らないとなりません。なーむー。