ロリポップで運用しているWordPressのバージョンが古く、最新のPHP、MySQLにバージョンアップしたあと、WordPressのバージョンをあげようとすると出るエラーメッセージ「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」
エラーが出る流れと理由は、
- 古いWordPressが利用中(バージョンアップせずこのまま)
- 古いPHP5を使用中なのでPHP7にバージョンアップ
- PHP7は古いWordPressに対応していない(MySQL拡張を利用できない)
- エラーとして「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」が表示される
そのため、一旦PHP5に戻して、WordPressをバージョンアップしてからPHP7にバージョンアップすれば解決します。しかしロリポップの場合はそう簡単にはいかないんです・・・。
ロリポップはPHP7からPHP5に下げることはできない
2019年ころからロリポップはPHP7にあげてしまうと、PHP5に戻すことができなくなってしまいました。2018年までは自分で再度PHP5に下げて「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」を回避して最新のWordPressにバージョンアップすることができました。
しかし2019年以降はもうこれができなくなっているんです。
というわけで、ロリポップで「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」のエラーが出た場合は自分で簡単に対処することはできなくなっています。
なので、色々調べたりしてストレスを抱える意味はないので、すぐにロリポップに連絡です。
ロリポップサポートに問い合わせる
ロリポップレンタルサーバーは共用サーバーですので、PHPの内部などを細かく自由に編集することはできません。この時点で私たち利用者ができることはないので、まずは管理画面にログイン後、ロリポップのサポートへメールフォームから問い合わせましょう。
上位プランであれば電話サポートもありますが、確実な症状伝達と、対策手順をもらうために口頭よりもメールがベストです。
ロリポップのサポートは48時間以内に返信がかることになっていますが、平日の日中であれば早めに返信が来ることが多く、格安サーバでここまで対応が早く丁寧なことに毎回驚いています。昔のペーパーボーインドコー時代の安かろう悪かろうのイメージはまったくありません。
しかも最近はテンプレ回答がほぼゼロ。しっかり親身に対応してくれます。
そして結果としてはロリポップではサーバ本体のことではないWordPress関連は何かすることはできないということで、参考サイトなどを含めて提案してくれました。最近ここまでしっかりした対応をするサーバーは珍しいのではと思います。
WordPress本体を最新バージョンに手動でアップグレードする
ロリポップで「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」の状態になってしまった場合は、もうWordPressにもログインが出来ない状態なので、FTPで既存のWordPressを削除し、新しいWordPressをアップロードし直して手動で最新版にアップロードするしかありません。
WordPressの手動アップグレードの方法
古いWordPressのファイルを削除
- FTPソフトでサーバ内のWordPress本体のディレクトリを開く
- 「wp-config.php」と「wp-contentフォルダ」、もしあれば「.htaccess」と「wp-imagesフォルダ」を残してすべて削除
- 「wp-contentフォルダ」内にある「languagesフォルダ」と「cacheフォルダ」を削除
最新のWordPressのファイルをアップロード
- 残すものを残し、消すものを消したら、最新版のWordPressの「wp-adminフォルダ」、「wp-includesフォルダ」、「wp-config-sample.php以外のファイル」をアップロード
- 「wp-contentフォルダ」内の「languagesフォルダ」をアップロード
WordPress管理画面へログイン
上記の削除とアップロードが終わったら、WordPressの管理画面へログインします。
「データベースの更新が必要です」が表示されるので「WordPressデータベースを更新」ボタンをクリックしてください。
すぐにデータベース更新が終わり、この画面に1秒ほどで切り替わります。データベースは無事更新できました。
「次へ」をクリックすると、もう既にWordPressは最新版になっているので、ログイン画面が表示されます。
お疲れさまでした。無事WordPressは最新版になり、ログインが可能になっています。
古すぎるWordPressの場合、その後エラーが出まくる可能性あり
WordPressはアップグレードしていますが、functions.phpはそのままなので、ここで最新版との齟齬が発生し、エラーが吐かれます。エラーログを表示させると下記のようなものが出るはずです。
「register_sidebar が誤って呼び出されました。「main_sidebar」サイドバーの引数の配列で id が設定されませんでした。既定では「sidebar-1」です。id に「sidebar-1」を設定することでこの情報を消して、既存のサイドバーのコンテンツを保つことができます。 詳細は WordPress のデバッグをご覧ください。 (このメッセージはバージョン 4.2.0 で追加されました」
これは古いバージョンのfunctions.phpに記載されていた部分を削除し、新しいバージョン向けに書き直せば解消されます。
名称などは各自使用しているものに書き換える必要があると思います。ここで重要なのは「 'id' => 'sidebar-1',」という箇所です。
コメントアウトすべき箇所
// Sidebar Registration and Display
// if ( function_exists('register_sidebar') )
// register_sidebar(array('name'=>'main_sidebar',
// ));
追記すべき内容
function my_theme_widgets_init() {
register_sidebar( array(
'name' => 'Main Sidebar',
'id' => 'sidebar-1',
) );
}
add_action( 'widgets_init', 'my_theme_widgets_init' );
これでエラーが消えます。
古いプラグインを停止させる
昔のプラグインが有効のままだと、最新のWordPressに対応していないため管理画面内でエラーを吐き出すことがああります。10年以上更新がないプラグインなどもあったため、これらはすべて停止させました。不要なら削除しましょう。
閲覧サイト画面ではエラーが出ないですが管理画面でエラーが出ている場合はプラグインを疑ってください。
Tweet
シェアしていただけると嬉しいです
あわせて読みたい関連記事一覧
301リダイレクト設定したhtaccessのキャッシュはどうやっても消えない
iPhone Safariでz-indexが効かず重なり順が正常に動かない場合の対処法
WordPressとロリポで「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」が出たときの対処方法
Google reCAPTCHAがIE11で表示されないときに確認すべきところ
InstanceBegin template="○○" codeOutsideHTMLIsLocked="false"が邪魔
IEでdiv要素がmarign autoで中央寄せにならない場合の対処法
google sitemapで『EntityRef: expecting ';'』とエラーが出たときの対処法