Windows10のxampp環境にあるphpにintl拡張モジュールをインストールした際の記録である。
php intl拡張モジュールとは
intl拡張モジュールとは、phpの国際化用拡張モジュールのこと。
どうやら、xamppの標準環境では、intl拡張モジュールはインストールされていないらしいので、追加でインストールしなければならない。
xampp環境のPHPにintl拡張モジュールをインストールする
intl拡張モジュールは、phpの拡張モジュールだ。
intl拡張モジュールのインストールは、Windowsにphpの拡張モジュールをインストールする手順を踏めばいい。
Windowsにphp拡張モジュールをインストールする手順は、PHP 拡張モジュールの Windows へのインストールに詳しく解説されている。
xampp環境のPHPにintl拡張モジュールをインストールするには、「php_intl.dll」を有効化する。
PHP 拡張モジュールの Windows へのインストールによると、多くのPHP拡張モジュールは「php/ext」フォルダにあるはずだと書かれている。
筆者の環境で、「php_intl.dll」の有無を確認したところ、下記のように存在した。
C:\xampp\php\ext\php_intl.dll
intl拡張モジュールの有効化
xampp環境下のphp拡張モジュールを有効化するためには、php.iniをカスタマイズする。
php.iniをエディタで開くと、intl拡張モジュールに関する設定がコメントアウトされており、システムに読み込まれていなかった。
;extension=intl
intl拡張モジュール有効化のための手順は下記の通り。
- php.iniのintl拡張モジュール設定のコメントを外す
extension=intl
- apacheを再起動する
intl拡張モジュールの可用性の確認方法
intl拡張モジュールが有効になっているか否かは、phpinfo()を実行すればわかる。
xamppの場合、http://localhost/
にアクセスすれば、ダッシュボード画面が表示される。
ダッシュボード画面にある「PHPInfo」のリンクをクリックすれば、phpinfo画面が確認出来るはずだ。
多くのxampp環境では、http://localhost/dashboard/phpinfo.php にアクセスすれば、phpinfo()が表示されると思う。
intl拡張モジュールの可用性の確認は、phpinfo画面に「intl」のエントリがあれば、利用可能ということになる。
intl拡張モジュールが有効化されない場合の対処
もし、phpinfo画面に「intl」の文字が見つからない場合は、ログ(error log)を確認してみる。
エラーログの場所は、phpinfoのerror_log Directiveに記載されている。
筆者の環境では、「\xampp\php\logs\」ディレクトリ以下に設定されている。
ICUライブラリの可用性を確認する
intl拡張モジュールを利用するには、ICUライブラリがインストールされていることが前提となる。
もし、phpのエラーログに「PHP Startup: Unable to load dynamic library ‘intl’」のようなメッセージが残っているとしたら、ICUライブラリが機能していない可能性がある。
ICUライブラリは、xamppに同梱されているはずで、php.exeのあるディレクトリにあるはずだ。
恐らく、C:\xampp\php ディレクトリ辺りに「icu*.dll」というファイルがある。
「icu*.dll」は、存在するだけではダメで、pathを通す必要がある。
「システム環境変数」の「path」に「C:\xampp\php」を追加する。
手順は下記の通り。
- 「Windows」+「R」キーで「ファイル名を指定して実行」ダイアログを表示させ、「sysdm.cpl」を入力
- 「詳細設定」タブを開き、「環境変数」コマンドボタンを押下
- 「環境変数」ダイアログボックスの「システム環境変数」領域にあるリストボックスで、「Path」を選択する
- 「編集」コマンドボタンを押下する
- 「環境変数名の編集」ダイアログボックスで「新規」コマンドボタンを押下する。
- 「icu*.dll」のあるパスを指定する。