WindowsのPHPでMcryptを使う
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
「Windows11開発環境の構築ガイド : PHP / WEBアプリ開発 編」
今回はMcryptをWindowsのPHPで扱う方法について解説していきます。
WindowsでPHPを扱うとき、だいたいのことは php.ini でいけます。
php.ini だけではダメなときもあります。
その1つがMcryptです。
McryptはPHP7.2でPHP本体から削除されました。
PHP7.2以降でも使用する場合は自前で用意する必要があります。
ということでセットアップしていきましょう。
本記事はWindows11ではなくWindows10を用いた説明になっています。
Windows10 も Windows11 も手順は同じですので「Windows10」の個所を「Windows11」と読みかえて進めてください。
また本記事は開発環境での用途を前提としています。
本番環境で利用される場合はここにある内容だけを鵜呑みにせず専門家に相談されることをお勧めします。
【宣伝】弊社では2000年台前半頃からPHPを扱っており古いシステムでも解析して直したり再活用を行うことができます。お使いのシステムに気になることがありましたらお気軽にお問い合わせください。
特徴
- Windows 11 / Windows 10 対応
- 複数バージョンの共存
環境
作業日 | 2022-11-16 |
OS | Windows 10 Pro 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() です。
【宣伝】弊社では2000年台前半頃からPHPを扱っており古いシステムでも解析して直したり再活用を行うことができます。お使いのシステムに気になることがありましたらお気軽にお問い合わせください。