ロリポップでPHP7にアップデートしたらデータベース接続エラーになった話

Blog

ロリポップ上でPHP5.6系で動いていたWordpressのサービスがあったので、これをPHP7系にしました。

 

そうしたら、データベース接続エラーになってしまいました。

WordPressは最新系なので、何も問題ないと思っていましたが…。

 

調べてみると、Mysqlのバージョンが5.1でした。公式サイトをみると

簡単インストールが失敗したり、サイトで「データベース接続確立エラー」が表示される場合、データベースのパスワード形式が影響している可能性があります。

ロリポップ!で提供しているPHP7.1では、セキュリティレベルが高いデータベース接続方法を採用しており、PHP7.1を利用しているドメインから、古いパスワード形式である「old_password形式」を利用しているデータベースへの接続を行うことができません。

公式Q&Aより引用

ロリポップのデータベースの調べ方はロリポップの管理画面からデータベースを選択し、データベースのバージョンを確認してください。

たくさんデータベースを使っている場合は、wp-config.phpを探して、DB名やパスワードを確認してください。

 

その後、パスワードを再設定して、再度同じパスワードを入力すれば完了です。

詳しい手順はこちら

1.ユーザー専用ページの〔サーバーの管理・設定〕→〔データベース〕メニューにアクセスします
2.利用中のデータベースの〔パスワード確認〕をクリックし、現在のパスワードをメモしておきます
3.〔パスワードを再設定する〕をクリックします
4.2で確認したパスワードを入力し、〔パスワードを再設定する〕をクリックします
5.確認画面が表示されたら〔OK〕をクリックします

公式Q&Aより引用

 

簡単に、技術的な解説を書いておくと、

実際のパスワードがそのままデータベースに入っているわけではありません。これはデータベースを乗っ取られたときなどに役立ちます。

例で

「aaaa」というパスワードは実は「asdfpafhdfopahfaafdahop」のように内部的には持っている感じです。

表向き、ログインするとき、aaaaを入力すると、「asdfpafhdfopahfaafdahop」と変換され、DBにお問い合わせをして一致したらログインできるという仕組みです。

バージョンアップにより、この内部的パスワードがより強固になったと考えられます。

 

面倒な作業ですが、PHP5系から7系に移行したほうが、速さとセキュリティの観点で望ましいです。

 

そして、PHP7に移行後…。

 

何も問題ないと思ったら、うまく表示できないサイトもありました。

 

  • 管理者ページは動いている
  • うまく表示できない

 

といった場合、

  • テンプレート
  • プラグイン

を疑ってください。

 

また、それらの最新版がPHP7に適応されているか確認する必要があります。

 

プラグインで、PHP Compatibility Checkerという便利なツールがあります。

 

これをインストールして、PHP7に適応しているか、確認すると、どこに問題があるか把握しやすいです。

このようにエラーがあった場合、プラグインを停止するか、アップデートで対応できるなら、アップデートで対応してください。

 

 

 

 

 

コメント

タイトルとURLをコピーしました