SPOTブログ

2014/06/20

お名前.comの共用サーバーSDのphp5.2サポート終了でエラーが出るようになった時の対処法

お名前.comの共用サーバーSDにて、これまでphpのバージョンが5.2.17だったのですが、6/16から順次5.5.9に自動でアップデートされています。

【重要】【共用サーバー SD】 PHP5.2提供終了のお知らせ

この変更に伴って、古いバージョンのphpプログラムや、古いバージョンのwordpressなどのCMSを使用している場合は、一部機能が動かなくなったり、エラーでページ自体が表示出来なくなったりとトラブルが発生する可能性が非常に高いです。

実際、当社で使用していたサーバーでも、6/18にphp5.5.9に切り替わったようなのですが、それに関連したトラブルがいくつか発生しました。

今回は、トラブルの内容毎に、対応方法を考えてみます。

 

1.英語のエラーがでて、ページ自体が表示されない

まずは、PHPのバージョンを変えてみて、動くかどうか試して見てください。
共用サーバーSDのコントロールパネルから「PHPバージョン変更」のページでphpバージョンを変更できます。

現在は5.5.9に設定されていると思うので、「5.4.24では動くか?」「5.2.17では動くか?」を確かめてください。
phpバージョンを5.2.17に変更しても症状が改善されない場合は、今回の問題とは別のトラブルの可能性があります。

5.2.17でしか動かない場合は、早急に対策が必要です。今は5.2.17も使えるのですが、今月いっぱいで使用できなくなりますので、5.5.9か5.4.24でも動作するように変更しなければ、今後そのウェブサイトは使えなくなってしまいます。

当社で使用していたwordpress以外のphpプログラムの場合は、5.5.9ではmysql_connect()のエラーで動かなかったのですが、5.4.24では動作しましたので、一端バージョンを下げて使用することにしました。

 

2.エラー内容がプラグイン起因の場合

Fatal error: Call-time pass-by-reference has been removed in /export/sdXXX/www/jp/r/e/gmoserver/2/1/sdXXXXXXX/XXXXXXXX.com/wordpress-2.8.2-ja-undernavicontrol/wp-content/plugins/google-analytics-dashboard/gad-admin-options.php on line 272

 

上記の画像のエラーの場合、wp-multibyte-patchのエラーが発生していることが分かります。
古いバージョンのWP Multibyte Patchを使用しているとphp5.4以上に対応が出来ないようです。

この場合は、プラグインを無効化するか、アップデートすることで解決する場合が多いです。ですが、このままの状態だとアップデートできないかと思いますので、FTPでwp-content/plugin/ディレクトリから該当のプラグインのフォルダをリネームするなどして、一端管理画面に入れるようにしてから、作業することになります。

該当のプラグインを削除・更新したら、別のプラグインでの同様のエラーが出てくる場合もあります。

 

3.wordpress3.3系で管理画面がサイドバー以外真っ白になる場合

 

管理画面に入れるようになった、と思ったら、左サイドバーを残して他が真っ白になって何も表示されない、という現象に見舞われることがあります。

googleで調べると、英語の情報がヒットしたのですが、WordPress3.3系の特有のバグがあり、それが原因でphp5.4以上では管理画面が表示されない、とのことでした。

直接的な解決策は、WordPressのバージョンをアップすることなのですが、共用サーバーSDでWordPressのアップデートをすると壊れてアクセス出来なくなってしまったケースも過去にあったので、バージョンアップしてさらに情況悪化するのも心配です。

そこで、今回はWordPressのコアファイルに手を入れて、バグを直接修正してしまう方法をとりました。本当は、WordPressの本体に手を加えてしまうとバージョンアップが出来なくなってしまうため避けなければいけないのですが、現在のWordPressの最新バージョンは3.9に対して、このワードプレスは3.3。すでに時代に取り残されてしまっているので、互換性云々をいまさら考えても仕方ないかと思いますので、自己責任でコアファイルを修正します。

wp-admin/includes/screen.phpの706行目に

と書いてある部分がありますので、ここを

に変更します。これで管理画面も問題なく使用できるようになりました。