【PHP】windowsローカルPHPバージョンアップ

PHP

PHPの脆弱性が公開されましたので、ローカル環境のPHPもバージョンアップし、Apacheから新しいPHPを呼び出すように変更しました。

● 環境

  Windows11
  現行 PHP 8.0.30 → PHP 8.3.8 にアップデートします
  Apache 2.4

● 導入するPHP

  PHP 8.3.8 x64スレッドセーフ

● バージョンアップ

 ①ダウンロード
  公式サイトから次をダウンロードします。
https://windows.php.net/download#php-8.3

apacheと連携するためには、x64スレッドセーフ版が必要ですので注意してください。
   php-8.3.8-Win32-vs16-x64.zip

ダウンロードしたzipファイルは、hash値を確認し、本家データと変わっていないか確認しています。

hash256 のハッシュ値が同じでしたのでダウンロードは完了です。

②実行ファイルの配置
 ダウンロードしたzipファイルを解凍し、c:\tool\php838に移動させました。

私はバージョンごとに名前を付けて管理しています。

③環境パスの変更

  windowsの設定から、「システムのプロパティ」を開き、「環境変数」のユーザ環境変数で「PATH」を選んで「編集」を選択します。

古いphpのPATHが残っていれば削除し、新しい環境のPATHを通してください。

修正前

修正後

コマンドプロンプトからphp 8.3.8 が呼ばれていることがわかります。

④apacheへの登録修正

次のPHPファイルを公開領域にセットしてテストを行います。

ファイル名 test.php
<?php
echo phpinfo();
?>

Apacheのconfファイルを開いて新しいphpを呼び出すように修正します
 httpd.conf ファイルの場所
 C:\tool\apache\Apache24\conf\conf.conf

#php module
PHPIniDir "c:/tool/php803"
LoadModule php_module c:/tool/php803/php8apache2_4.dll
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php
↓
LoadModule php_module "c:/tool/php838/php8apache2_4.dll"
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>
# configure the path to php.ini
PHPIniDir "c:/tool/php838"

docを確認したところ、confファイルの書き方が変わったみたいです。

パソコンを再起動してブラウザから
   localhost/test.php
を呼び出したところ、Apacheからphp8.3.8が呼ばれていることが確認できました。