どうも。WEBおじさんです。

3日ぶりの更新ですねw
ちょっといろいろ立て込んでて少し日が開いちゃいましたが。

ということで、今回のお話の主役がこちら。

レンタルサーバーheteml(ヘテムル)さんです。

こちら、結構利用されている方々、多いんじゃないでしょうかね。

安価で高機能だし、サービスも充実してる感じですし、使い勝手も良い感じですね。

私もお仕事でお客さんが初めてホームページを作るっていうケースがたまにあるんですが、ヘテムル さんを勧めることがありますね。

他にも『ロリポップ! 』もたまに勧めます。
こちらも安価で、特に安いプランは月100円からあるので、最初のハードルが低いし、スタートアップの店舗さんとかは結構ロリポップ! さんを選ぶケースが多いです。

ということで、今回は『レンタルサーバーheteml(ヘテムル)さんについてなんですが、こちら、2016年から新サーバー環境の提供を開始したようなんですが、2020年9月以降にまだ新サーバーを利用していないWeb サーバー(ftpXXX)を対象に移設メンテナンスを行うようで、2020/8/31までに移設作業を実施しなかった場合は自動的に新サーバー環境となってしまうようなんです。

そのお知らせを読んだお客さんから連絡が来まして、今回対応することになりました。

実際、データベースを使用していなかったり通常のHTMLだけでホームページが構成されている場合は何も難しいことはなく、ボタンをクリックして念のため移設前に新サーバー環境での表示を確認して問題なければ移設完了ボタンを押して完了なんです。

でも、データベースを使ってたり、wordpressなどのCMSを使っている場合はそれぞれの動作確認が必要になります。

今回のお客さんは私が作ったシステムを使っていて、それの動作確認が必要でした。
とはいえ、そんな複雑なことは多くないから大丈夫だろうと思っていたのですが、そうは問屋が卸さなかったのです。。

そもそも、そのシステム自体は2013年という、結構古い時代に作ったもので、しかも管理案件ではなく売り切りの仕事で作ったものなんで、レンタルサーバーの仕様に変更があった場合のバグは保証できない、というお話で作っていました。

で、これまでは特に不具合もなく7年が経過したのですが、今回hetemlの新サーバー環境のPHPのバージョンが7.3.17でした。

なんか嫌な予感がしたんですよねー。

以前、別案件でPHPのバージョンを上げた時に私が作ったシステムが動かなくなったような記憶がありまして、その時のPHPのバージョンが7.2だかなんかだったんですよ、確か。

で、今回の新サーバー環境での表示も真っ白。。。

こうなるともうどこでどういう不具合が起きているのかが全くわからないので、まずはどこまでが動いているのかを確認するためにとにかく何でもいいから表示を出す、という作業から修復作業が始まりました。

そしたら、意外とあっさり見つかりました。

MySQLへの接続関数で止まっていました。
つまり、一番最初ですねw

で、ちょっと調べると「mysql_」で始まる関数がPHP7では使用できないことが判明。
これは聞いたことがあったので「やっぱり」という感じですが、聞いたことがない人は「どうすんだ?」となりそうですね。

PHP7以降では、「mysql」ではなく「mysqli」関数を使用することが推奨というか、必須なんですかね。
まぁ、「mysql」だと動かないのできっと必須なんですね、少なくとも今回のhetemlでは。

なので、「mysql」関数を使っているところを対象に改修することにしました。
・・・まぁ、全部ですねw

前職のシステム担当のおじさんに「mysqli」について聞いたことがあったのですが、ただ「mysql」を「mysqli」に変更するだけ、と言っていたので、そんなことはないだろうと思いながら試しにやってみたところ、エラーが出現しましたw

でも、何も出なかったところからエラーが出たことが第一歩だったりするので、エラー潰しを始めました。

Google先生(神)とタッグを組み、mysqliについて調べたところ、mysqli_select_dbとmysqli_queryの書き方が少し違っていたようで、今まではmysql_select_dbやmysql_queryには接続の引数はなくても使えたのですが、どうやら引数に接続をセットしないと使えないらしい。。(ちょっと時間がなくてちゃんと調べていないから詳細は不明)

なので、今までは

mysql_select_db (“データベース名”);
mysql_query(“SET NAMES utf8”);

というように書いていたものを、

mysqli_select_db ($con,”データベース名”);
mysqli_query($con,”SET NAMES utf8″);

というように、第一引数に接続を定義した変数を入れました。
そうするとエラーが消え、ちゃんと動き始めたので、その辺を全部書き直してみると、ちゃんとDBからデータが出るようになり登録や更新も問題なく実行することができました!

とりあえず、私が作ったシステムはそれで解消できたのですが、実は問題はこれだけではなく、このお客さん、最近wordpressを使い始めているのです。

ちょっと前にリニューアルの依頼を受け、wordpressをインストールしたんですよね。
その時、サーバーのPHPのバージョンが低かったので最新のwordpressがインストールできず、悩んだ結果、旧バージョンのwordpressをインストールしたのです。

これを最新のバージョンに更新してくれ、ということも今回の要件に含まれているのです。。

まぁ、wordpressの更新は管理ページからリンクをクリックすれば自動でやってくれると思うのですが、不具合が出た時に現行に影響する可能性があるので、これはまた次の記事で経過をお話しますね。

取り急ぎ、今回はPHP7では「mysql」を「mysqli」に変更することを注意点として書きました。

尚、PHPのバージョンが古いと「mysqli」が使えません。
以前、別のレンタルサーバーを使用しているお客さんでmysqliを使ってみようと試したところエラーが出てうまくいかなかったので調べてみたところ、mysqliはPHP5.0以降で拡張モジュールが使えるようになり、5.3で標準になったとのこと。

そのサーバーではPHPが5.2系で、拡張モジュールが入ってなかったので使用できなかったというお話でした。

PHPのバージョンを5.6にアップデートしたら使えるようになりましたとさ。

以上!また次回!
WEBおじさんでした!

この記事の感想を教えて下さい!
  • 役に立った! (1)
  • よくわからない (1)
  • 面白かった! (0)
  • 役に立たない (0)
  • そんなこと知ってるし (0)