folderトラブル対策

使いたいプログラムとサーバーのPHPバージョンが合わないときの対処法

使いたいプログラムとサーバーのPHPバージョンが合わないときの対処法

使いたいプログラムとサーバーのPHPバージョンが合わないときの対処法 - https://do.gt-gt.org/php-version/

メールフォームやいいねボタン、CMSなどを動かすのに欠かせないのがPHP

2022年現在、主に使われているバージョンはPHP7(ちなみに、最新は8)ですが、フリーで配布されているプログラムの中には、PHP5でしか動作確認を行っていないものも存在します

また逆に、昔から契約しているサーバーの場合、PHPバージョンが5のまま運用しているケースもあります。使いたいプログラムを見つけたけど、自分のサーバーで使えるPHPとは推奨されているバージョンが違う……なんてことも、個人サイト制作・運営では珍しくはありません。

そんなときにどうしたらいいのか、そもそもPHPのバージョンが違うとどんなことが起こるのか、この記事で解説していきます。

PHPのバージョンが違うと何が違う?

バージョンの数字が大きいほど、新しくリリースされたプログラムです。最も重要な違いは、プログラムの実行速度です。もちろんバージョンが新しい方が早くなります。

また、PHP5では普通に使えた関数が7では非推奨になってしまったり、逆にPHP7では使える関数がPHP5では使えない、という場合もあります。

関数が使えないということは、プログラム内に書かれていることが処理できないということです。PHPプログラムをサイトに設置するとき、推奨バージョンとは異なるバージョンのPHPで動かすと、エラーが起きて想定通りの動きをしなくなってしまう場合もあります

だから、プログラムを設置する前の「プログラムの推奨PHPバージョン」の確認が重要になるわけです。

自分のサーバーのPHPバージョンを確認・変更する方法

サーバーのユーザー専用ページにログインすれば、自分の借りているサーバーのPHPバージョンを確認・変更することができます。

ロリポップ!でのPHPバージョンの確認・変更方法
ロリポップ!では「サーバーの管理・設定」から「PHP設定」で確認できます
さくらのレンタルサーバでのPHPバージョンの確認・変更方法
さくらサーバでは「スクリプト設定」から「言語のバージョン設定」で確認できます

どのPHPバージョンが利用できるかはレンタルサーバーによりますが、現在、新規契約でPHP5を使えるところはほとんどないはず。PHP5は全て公式サポートが終了しているためです。サーバーを提供する会社としては、公式サポートがされていないプログラムの利用によるトラブルをできるだけ避けたいからです。

PHP7系においても、7.3まではサポートが終了しているので、可能であればPHP7.4以降を利用するのが無難です。

しかし、PHPバージョンを変更する前に、確認すべきことがあります。同じPHP7系統の中で変更する場合(7.1から7.4など)は気にする必要はほぼありませんが、PHP5から7、7から8など、メジャーバージョンが変わる場合は必ず次のことを確認してください

PHPバージョンを変更するときに気を付けるべきこと

既に設置されているPHPプログラムの対応バージョンを確認しよう

もしもサイトですでにPHPプログラムを利用している場合は、必ず配布元サイトで対応バージョンを確認しましょう。

対応PHPバージョン確認の例
配布元サイトに必須条件が記載されているはずです

利用中のプログラムがPHP5にしか対応していないのに、サーバーのPHPバージョンを7などに変更してしまうと、プログラムにエラーが出て正常に動かなくなる可能性があります。

重要なのは、多くのサーバーではPHP5から7への変更はできても、7から5へのバージョンダウンはできない仕様になっていることです。先述したとおり、PHP5は公式サポートが全て終了しているからです。

つまり、PHP5でしか動かないプログラムを使っているのに、サーバーのPHPバージョンを7に変更してしまうと、プログラムにエラーが出たまま戻せなくなってしまう場合があるということです。

サイトでPHPプログラムを何も利用していない場合は、そのままPHPバージョンを変更して問題ありません。

プログラムの対応PHPバージョンとサーバーのPHPバージョンが違うときは?

どうしてもサーバーのPHPバージョンを5から変更できないけど、PHP7のプログラムを使いたい場合や、その逆のケースもあるかもしれません。そんなときはどう対処すればよいでしょうか。

PHPではエラーが発生したとき、エラーの内容を英語で詳細に報告してくれるという仕様があります。

Parse error: syntax error, unexpected token "foreach" in C:\〇〇〇\newiine_app\admin\inc\_core.php on line 87

たとえば上のような感じです。文章の後半を見ると、C:\〇〇〇\newiine_app\admin\inc\_core.php このファイルの87行目(line 87)に問題があることが分かります。

PHPはとても広く利用されている言語なので、エラー文章の前半のParse error: syntax error, unexpected token "foreach" inをコピペしてGoogle検索にかければ、たいていのエラーの解決方法が分かります。

このように、表示されたエラーをひとつずつ解決していけば、サーバーのPHPバージョンに合わせることができるはずです。

ただし、場合によっては何十か所もの数の記述を修正する必要がありますし、知識のない人がPHPプログラムに手を加えることにはリスクもあります。当サイトで配布しているいいねボタンのような、ファイル数がさほど多くないプログラムなら修正箇所が少なくて済むかもしれませんが、多機能掲示板やCMSのように複雑なプログラムでは素人が修正するのは難しいでしょう。

どうしても使いたいプログラムがあり、自分で時間をかけてPHPについて調べて修正できる自信のある方のみ、自己責任の上で挑戦してみてください。

関連記事

CSSの変更がブラウザで反映されないときにチェックすべきこと
folderトラブル対策 favorite 17

CSSの変更がブラウザで反映されないときにチェックすべきこと

創作・同人系個人サイトを訪問するときに気を付けたいこと
folderトラブル対策 favorite 208

創作・同人系個人サイトを訪問するときに気を付けたいこと

自作イラストの無断転載を防止!SNS・個人サイトでできる対策は?
folderトラブル対策 favorite 108

自作イラストの無断転載を防止!SNS・個人サイトでできる対策は?

生成AIに作品を学習されたくない!個人サイト展示物をAI学習から保護する方法
folderトラブル対策 favorite 108

生成AIに作品を学習されたくない!個人サイト展示物をAI学習から保護する方法

サイト更新ごとにCSSファイルを新しく読み込ませてキャッシュ問題を回避する方法
folderトラブル対策 favorite 27

サイト更新ごとにCSSファイルを新しく読み込ませてキャッシュ問題を回避する方法

【目的別】検索避けのやり方!創作・同人サイトのトラブル対策の強い味方【無断転載対策】
folderトラブル対策 favorite 159

【目的別】検索避けのやり方!創作・同人サイトのトラブル対策の強い味方【無断転載対策】