ロリポップでphpのバージョンが上がった時のセッション・mysqlの注意点

レンタルサーバーであるロリポップを利用しているサイトで、新しいドメインを取得した時に現在だとPHPのバージョンが5.6のCGI版かモジュール版が選択できるようになっています。その時に昔からのphpのコードを移植してサービスを作ろうとした時に問題が起きたのでどのように解決したのかメモして起きます。

rplay.me/11041

転職サイトに2、3個登録し、自分の市場価値を確かめることをお勧めします

2018年8月最新 ▼当サイトで申込みが多い転職サービスはこちら

【1位】BIZREACH(ビズリーチ)【10ヶ月連続1位】年収600万円以上の求人多数!

【2位】DODA(デューダ)【2位・非公開求人多数】・人気急上昇中

【3位】リクナビネクスト 【【未経験でも転職成功・適職無料診断】】

多くの求人サイトがありますが、人事採用担当者・転職エージェントの経験がある筆者が厳選しています。

phpのバージョンアップで起きた問題

photo-1487058792275-0ad4aaf24ca7

下記、レンタルサーバーのロリポップを利用しています。

レンタルサーバーを利用していると問題の切り分けが非常に面倒なのですが、どのように調査すればいいのかのメモもして起きます。

細かくログを取得したり、全て検証できる訳ではありませんが、ひとまずエラーが出なくなるように改善できたので、問題についてと、その解決策について記載します。

mysql関数が利用できなくなった

photo-1484417894907-623942c8ee29

結論としては、ロリポップ関係なくphpのバージョン5.6からmysql_connectなどのmysqlの関数が利用できなくなりました。それが原因で発生していた問題です。

ロリポップには警告が出ない

ロリポップには警告などがなく、利用しているコードのエラーを自動的に検出してお知らせするなどそういうことがないので気づきませんでした。

ロリポップのお問い合わせ対応から問い合わせて見ましたが、問い合わせの時にどういう問題が起きているか切り分けられていないと解決しないので、コードの問題なのかどうかまで切り分けておくと良いでしょう。

ロリポップのサーバー設定で変更すること

ロリポップのサーバーの設定を見直したり、問い合わせしてみて、色々コードを変更してみて調査していてやっと気づきました。(気づくのが遅いという可能性もありますが。。)
error_displays は on にしておくことをオススメします。

mysqli, pdoのどちらかを利用してみることをオススメします。

mysqli , pdoの記述方法の事例

全ページにsession_startを入れる必要ができた

session_startは$_SESSIONを利用するときに活用しますが、これをsession_startの前後に空白や改行が入っていないかチェックしておく必要があります。

また、session_startが入っていない状態で、エラーログを出力しておかなければ、なぜセッションがページを跨いだときに保持されないかなど、デバッグが難しくなります。

デバッグ時にはエラーログを出力できるように「error_displays」などのサーバーの項目をロリポップ上からドメイン指定をして、onに切り替えておくことをオススメします。

デバッグがしにくいと問題の切り分けが難しいので、最初にやっておくと良いです。

セッションが利用できなかった時の解決策まとめ

  • session_startを利用しているかどうか確認
  • session_startの入れている場所に改行、空白が入ってないかどうか
  • mysql関数を利用しているphpのバージョンが5.6より下のバージョンだったかどうか

シンプルにまず上記の3つを確認してみることをオススメします。

2018年5月最新! ▼当サイトで申込みが多いプログラミングスクール・教室はこちら!

【1位】「ギークジョブ【10ヶ月連続1位!就職・転職成功率95%!上場企業へ内定】

【2位】WebCamp PRO (ウェブキャンププロ)【就職転職保証・返金保証・年収300万上がる】

【3位】WebCamp(ウェブキャンプ)【5ヶ月連続!3位】

ほかにも多くのプログラミングスクールがありますが、現役エンジニアが利用して間違いないスクールを厳選しています。

実際にWebCampに通って上場企業へ転職、年収が上がったエンジニアの話 → プログラミング未経験からエンジニアへ

この記事が気に入ったら
いいね!しよう

Rplayの最新情報をお届けします

TwitterでRplayをフォローする