概要
PHPの脆弱性対策でバージョンアップをする場合など。IISの最終設など
手順
既存のPHPバックアップ
なにはともあれ,適当なフォルダにPHPの実行フォルダ内をごっそりコピーしておきましょう。万が一はあるものです。
PHPを入手する
URLは以下
Non Thread Safe か Thread Safe か。x64 か x84 か
ダウンロードするときによく迷うのが,ノンスレッドかスレッドかです。現在使用しているPHPがどちらで動作しているか調べてから,それと同じタイプをダウンロードすると良いでしょう。調べ方は,phpinfo()関数を使用した単純ページを作成して,WEBで表示させます。例えば,以下のソースのPHPファイルを作成しWEBサーバーにアップし,アクセスします。
<?php
phpinfo();
以下のようなページが表示される。左上にバージョン情報
Thread Safety の項目がどうなっているか。
enabled : Thread Safe
disabled: Non Thread Safe
となる
また,Architecture の項目をみれば, x86 , x64 どちらかがわかる。
ダウンロードしたPHPをインストールする
前述の手順でダウンロードしたファイル を サーバーにコピーさせますが… 既存のPHPフォルダに上書きコピーするか,新たに別のフォルダに配置させるかで後続の手順が変わってきます。
既存のPHPインストールフォルダに上書きさせる場合 (簡単)
IIS(Wold Wide Web 発行サービス)を停止させておきましょう。実行中でファイル使用中だと不具合が出るかもしれないからです。
上書きコピーが終われば,それで終了(のはず)です。IISを再開させ,前述の phpinfo を使用したページでバージョンアップできているか確認するとよいでしょう。
新規フォルダにPHPをインストールする場合 (複雑)
既存のPHPフォルダはさわらず,別途新たに作成したPHPフォルダに実行ファイルをコピーさせた場合は,環境の再調整を行う必要があります。(さほどややこしくはありません)
PHP.INI
PHPの実行環境の設定は PHP.INI ファイルに保存されています。旧PHPより新PHPのフォルダにコピーしておきます。(インストールされているフォルダに基本あるかと思いますが,他の場所に移動させている場合もあります。前述のphpinfoで調べることができます)
備考
新・旧のバージョンがあまりにも違う場合(ver5→7など)は,PHPファイルをコピーするより,「php.ini-production」というファイルがあるので,それを php.ini にリネームし メモ帳などで必要な箇所を編集したほうがいいでしょう。(何をどう編集するかは状況次第なので割愛)
システム環境変数 Path
Windows のシステム環境変数 PATH の値が 旧PHPのインストールフォルダになっているので,新しいフォルダpathに変更します。
IISでハンドラーマッピングを変更する
インターネットインフォメーションサービスマネージャーで,サイト(またはサーバー)を選択し,ハンドラーマッピングの画面を表示させます。
パス が *.php となっている行をダブルクリックし,編集画面を表示
実行可能ファイル を 新PHPインストールフォルダにある php-cgi.exe に変更する
これで環境設定の変更は終了。前述の phpinfo でバージョン情報を確認してみましょう。もしエラーが出る場合は,一旦OSを再起動させてみてください。
phpinfoは表示されるのに,他のページが動かない
phpinfoは表示されるのに,他のPHPページではエラーがでる場合,以下の理由が考えられます。
●バージョンの互換性がないPHPプログラムが含まれている
●環境がまだ旧の設定がある。
php.ini で旧PHPのインストールフォルダが指定されていないかチェックする
プロパティ
PHP 7.1.19 , 7.3.11, 8.2.8
Windows Server 2016 R2
Windows Server 2019
コメント