HETEMLサーバーの「リニューアル環境へのプラン変更機能を提供開始しました」の注意点
すばらしきレンタルサーバーHETEML
長いこと愛用してるレンタルサーバーHETEML。すごく良いんです。トラブルないし管理画面が親切だし数年に一回サーバーのスペックアップしてくれるし至れり尽くせりのレンタルサーバーです。オレが関わってる契約数でいうと10個くらいあります。ドメインでいうと20くらい。だいぶお世話になっています。
そんな素晴らしいHETEMLサーバーですが、2022年11月21日から「リニューアル環境へのプラン変更機能を提供開始しました」ってのをやってるようです。
新規契約のサーバーがスペックアップした上に既存契約サーバーも無料でその恩恵にあやかれる太っ腹キャンペーン。
数年前も同じようなキャンペーンがあって、その時は「かなりの部分をボタンひとつで新サーバーに自動引っ越ししてくれた」んですよ。感動しましたわHETEMLの技術力の高さに。なにせWEBサーバーの引っ越しってすんごい大変なので。サイトの規模によるけど大仕事なんです。
iPhoneも昔は買い替えのたびにUSBで繋がれたパソコンのiTunesにデータをバックアップして、新しいiPhoneにリストアして、ってやってましたよね。Appleアプリの謎の日本語訳に首ひねりながら頑張りました。データとアプリは引っ越しできてもログイン情報などの設定は引き継がれなかったりとかなり大変でした。有料でそれをやる携帯ショップもさぞかし繁盛したことでしょう。でも今のiPhoneは新旧を横に並べるだけで99%くらい引っ越ししてくれますよね。最後の1%はBluetoothの接続くらいでね?っていうくらい引っ越しが簡単になった。
リニューアル環境へのプラン変更機能を実行したら死んだ
で、話を戻すと、webサーバーの引っ越しってiPhone引っ越しの128倍くらい大変なんですが、HETEML社の高い技術のおかげで数年前はボタンひとつで8割くらい自動で引っ越しできたんですよ。で、今年にいたってはもう100%自動で引っ越しできたくらいにパワーアップしてました。
ってことで契約数でいう10、サブドメインも含めたドメイン数で20くらいのwebサーバーを全部引っ越ししてみたんですよ月曜日の夜に。
引っ越し作業は1時間くらいで終わるらしい。全自動で!すごすぎ~
って感じでログアウト、ログインしまくって「プラン変更」ボタンを押しまくって30分くらい経って、ホームページを見てみたら・・・・
猛烈にエラーメッセージで埋め尽くされてた・・・
ブログ関係は?????????????????って文字化けの嵐?
見た瞬間オレは死にましたね。定休日前の20時頃です。会社は21時まで。あーもう、今日は徹夜だ、と。死にました。
ってことで、ニッチソリューションシリーズ。HTEMLのリニューアル環境へのプラン変更機能の注意点
注意点その1:CGI版PHPのPHP.INIがデフォルトに戻るっぽい
モジュール版は関係ないです。CGI版のPHPを使っててPHP.INIを自分で変えてる人は要注意ですPHP.INIがデフォルトに戻ります。ちなみにオレのは全部PHP5.6です。で、一番の問題はdisplay_errorsがONになることです。error_reportingもデフォルトになるので画面いっぱいにNoticeメッセージが表示されまくり。もちろんNoticeメッセージも完全に潰してる完全なプログラムを書いてるひとは問題ないですが。現実問題そうはいかないと思います。
display_errorsをONのままにしてerror_reportingでNotice出さないようにするか、display_errorsをOFFにするか。とりあえずオレはOFFにしました。
それでもNoticeが止まらないサイトがいくつかあって、原因は.htaccessでphp_value error_reporting なんちゃら、ってやってるサイトでした。いやぁほんとに焦ったわ~。しかもNoticeメッセージがやたらカラフルで変な色使いでやばかった~
ネットの広い画だけどこれ↓オレンジ色のメッセージ。これがホームページに出まくるんすよ。焦った~
その他、PHPINIがデフォルトに戻るのでdisplay_errors以外にも独自の設定してる人は引っ越す前に現在の設定をスクショ保存することをおすすめします。オレの場合はmax_file_uploadsとかupload_max_filesizeをイジってます。サブドメイン数=PHP.INI数なので、ここを変える作業を30回くらいやる羽目に😂
注意点その2:utfmb8のMySqlが盛大に文字化けした
これが一番たいへんでした。自作のブログシステムの一部で文字化けが発生。ブログシステムは20ドメインくらいで動かしてるけど、5ドメインが盛大な文字化け。日本語が全部????????になる種の文字化け。
さっきの続きで最初はPHP.INIが原因と思った。mbstringまわりが全部デフォルトに戻った影響か?と。
ここらの設定をいじったけど解決せず。
で、冷静に考えたらブログシステム20くらいのうち文字化けしてるのは割りと最近作ったドメインのやつだった。今回のHETEMLスペックアップでDBサーバーはなにも変更されてないからMySQLの設定云々は関係ない。どういうことだろ?で、気づいた。文字化けを発生してるブログシステムが使ってるMySQLの文字コードがutfmb8であることに。このブログもそれに該当するけど絵文字😂🤮🤣🤔😥←これを入れられるようにするために最近作ったブログのMySQLテーブルは文字コードをutfmb8にしてた。普通のUTF8は化けずにutfmb8だけが化けてる。どうやらPHPから見るとDBの文字コードがLatin1になってるみたい。ググりまくった結果、以下を設定したらなおった。
$con = mysql_connect("~~の後に
mysql_query("SET NAMES utf8mb4");
mysql_set_charset('utf8mb4',$con);
たったこれがあるかないかで全部文字化けするんだから怖い怖い。解決できたのが21時前で無事に徹夜残業せずに帰宅できました。
注意点その3:普通のUTF-8のMySqlも盛大に文字化けした
翌日、別の部分でも問題発生。オレは休日だけどそうも言ってられず対処。その部分はオレが書いたプログラムでない箇所。だけど同じMySQLの文字バケだからmysql_query("SET NAMES utf8")すれば治るか?って思ったけど治らず。で、自分で書いてないのでうっかり見逃してたけど、そのプログラムはMySQLでなくMySQLiで書かれてた。なのでmysql_queryコマンドは当然効かない。結局
$link = mysqli_connect(~~~ の次の行に
mysqli_set_charset($link, 'utf8');
↑一行追加で文字化け治った。
PDOの場合は
$hoge->query('SET NAMES utf8');
みたいにやるみたい。
ともかくHTEMLのリニューアル環境へのプラン変更機能でPHP MySQLで文字化けが発生したら、文字コードの設定をPHP側でやれば治るかもしれない、っていうお話でした。
ーーーーーーーーーーーーー
以上3つがトラブったけどそれ以外は問題なく動いています(今のところ)。
※プラン変更後も引き続きCGI版のPHP5.6、PHP7.1、PHP7.3、PHP7.4はご利用いただけます。
↑って公式に案内されてるけど「PHP.INIは引き継がれません」って一言書いてほしかったな。
そしてMySQLで文字化けする件もどこかの設定値が違うからだと思うので、そこらへんも一言欲しかった。
けど、こんな素晴らしいサービスを無償でやってくれるのは本当にありがたいです。
ここ以外も数社、高いのも安いのも使ってるし使ってきたけど、普通のサイトであればHETEMLが一番バランス良いし管理画面が超いい感じなのでほんとにおすすめです。
唯一の不満点はPHPmyAdminのタイムオーバー値が短いことくらいです🙌
カテゴリ:PC・スマホ・WEBネタ