[PHP] Windows Server + IIS 環境でのバージョンアップ

php IIS

概要

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フォルダに実行ファイルをコピーさせた場合は,環境の再調整を行う必要があります。(さほどややこしくはありません)

サーバーの C:\Program Files\PHP に単純コピー
PHP.INI

PHPの実行環境の設定は PHP.INI ファイルに保存されています。旧PHPより新PHPのフォルダにコピーしておきます。(インストールされているフォルダに基本あるかと思いますが,他の場所に移動させている場合もあります。前述のphpinfoで調べることができます)

備考
新・旧のバージョンがあまりにも違う場合(ver5→7など)は,PHPファイルをコピーするより,「php.ini-production」というファイルがあるので,それを php.ini にリネームし メモ帳などで必要な箇所を編集したほうがいいでしょう。(何をどう編集するかは状況次第なので割愛)

システム環境変数 Path

Windows のシステム環境変数 PATH の値が 旧PHPのインストールフォルダになっているので,新しいフォルダpathに変更します。

システム環境変数 Path を編集する
IISでハンドラーマッピングを変更する

インターネットインフォメーションサービスマネージャーで,サイト(またはサーバー)を選択し,ハンドラーマッピングの画面を表示させます。

パス が *.php となっている行をダブルクリックし,編集画面を表示

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

コメント

スポンサーリンク
タイトルとURLをコピーしました