WindowsのPHPでMcryptを使う

WindowsでPHPを扱うとき、だいたいのことは php.ini でいけます。

php.ini だけではダメなときもあります。

その1つがMcryptです。

McryptはPHP7.2でPHP本体から削除されました。
PHP7.2以降でも使用する場合は自前で用意する必要があります。

ということでセットアップしていきましょう。

弊社では、2000年台前半頃からPHPを触っている関係で、古いシステムでも解析して扱うことができます。当時の担当者とか制作会社がいなくなったなどで困られた方からの相談を頂くことがよくあります。お気軽にお問い合わせください。

特徴

  • Windows10
  • 複数バージョンの共存

特定バージョンでの開発や動作確認など開発環境での用途を目的としています。

環境

作業日2022-11-16
OSWindows10  64bit

インストール対象のPHP

今回はこちらでインストールしたPHP8.0.25で使っていきます。

php-8.0.25-Win32-vs16-x64
▲こちらです。

公式の手順

https://www.php.net/manual/ja/mcrypt.installation.php

こちらです。

ダウンロード

公式サイトから取得

「公式から」ってことなんですが、ここでは「PHPの公式から」です。

ダウンロードページは▼です。
https://pecl.php.net/package/mcrypt

いっぱい出てきますが、2022年11月16日時点では次のようになっています。

Downloads でWindowsアイコンをクリックします。
本当は最新の 1.0.5 が欲しいところですが、Windows向けにはまだのようなので、1.0.4 の行のWindowsアイコンをクリックします。

mcryptを使おうとしているPHPのバージョンを選び、ビルド方式に従って選択します。
PHPをインストールするときに選択した考え方と同じです。

今回だとこちらでインストールしたPHP8.0.25 なので、「PHP8.0」の「ThreadSafe」の「64bit」を選択することになります。

php_mcrypt-1.0.4-8.0-ts-vs16-x64.zip

ここではクリックしてこちらをダウンロードしました。

ちなみに上述のとおりで、Windows向けだと現在は PHP8.0系までしか対応していません。
PHP8.1 はおそらく 1.0.5 からの対応になると思いますのでしばらく待ってみることになります。

インストール

場所はどこでもOKなので
フォルダを作って中身を解凍してコピー
です。

私の場合は下図のように、zip と同じ名前でフォルダを作ってその中にいれています。

このように複数バージョンを扱えるようにします。

ちなみに環境をDoropboxに作っておくと、バックアップになるしで便利です。
ちなみのちなみですが、Doropbox に入れるのはいわゆる本体だけで、データファイルやログファイルなどはDropboxの外のフォルダを指定しています。

php_mcrypt.dll の配置

php_mcrypt.dll は、上記、解凍したフォルダの中にあります。

php_mcrypt.dll をPHPの ext の中に入れます。
▼のような感じです。

今回は php-8.0.25-Win32-vs16-x64 にだけ入れることにします。

他のPHPバージョンに入れることも出来ますが ts-vs16-x64 の部分が一致するものにしたほうが良いです。

php.ini に追記

php.ini の末尾に下記を加えます。

[mcrypt]
extension=php_mcrypt.dll

確認

ということで、APACHE を再起動して phpinfo() です。