前回の記事でパスを通した後に、Laravelのartisanコマンドを打ったら、エラーが出ました。
エラーメッセージは3つ出ました。
- Warning: PHP Startup: Unable to load dynamic library 'fileinfo'
- Warning: PHP Startup: Unable to load dynamic library 'mbstring'
- Warning: PHP Startup: Unable to load dynamic library 'openssl'
Laravelのartisanで利用するから出る拡張モジュール読み込めないエラーです。
この記事の対象者
- WindowsでPHP使っている人
- PHPで動いてるアプリを実行しようとしたらUnable to dynamic library~と言われる人
extファイルを移動をします
phpをダウンロードしたフォルダまで掘って、次のファイルをコピーします。
- php_fileinfo.dll
- php_mbstring.dll
- php_openssl.dll
ここから、phpが読み込む拡張モジュールの場所の初期値がc:\phpなので、その通りにする作業をします。
- 新しくextフォルダを作ります
- extフォルダにコピーしたDLLファイルを入れます
- Cドライブ直下にphpフォルダを作ります
- phpフォルダにextフォルダを入れます
php.iniの何処かを変えれば、任意のフォルダに出来ると思いますが、日本語がパスに交じってることが原因のエラー出たら嫌なので、上記の通りにやりました。
php.iniの修正
拡張モジュールが読み込めるようにphp.iniを修正します。インストール直後の初期状態php.iniが存在していないので、テンプレートを使います。
テンプレートは
- php.ini-development
- php.ini-production
とありますが、php.ini-developmentをphp.iniにリネームします。
php.iniを開きます
ファイルの913行目付近に、;extensionと書かれた項目が列挙されてます。
こんな感じですね。この中から、mbstring、fileinfo、openssl左側のコロン[;]を削除します。画像は削除してある状態です。そして保存します。
そしてコンソールからphp artisan --versionを叩けばartisanが動きます。