LaravelでMigrationを作成しようと思ったところ、”Mcrypt PHP extension required.”というエラーが出たため、その解消法をまとめました。
ネットで調べたところ、エラーメッセージ通りにMcryptというPHPの拡張モジュールをインストールすれば良いとのこと。
brewのインストールはAnsibleの導入時に記載したとおり以下のコマンドを実行する。
1 2 |
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
早速brewを使ってインストールを試みたところ、エラーが発生。
$ brew install PHP54-mcrypt
* 自分の使っているPHPのバージョンが5.4のため54にしています。
Error: No available formula for php54-mcrypt
brewがリポジトリを認識していない模様。以下のコマンドでリポジトリを追加します。
$ brew tap josegonzalez/php
再度、brew installを実行したところ、別のエラーが発生。
configure: error: Cannot find OpenSSL’s <evp.h>
なにやら、Mac OS特有の事象のよう。
OpenSSLが見つけられるようにするには、XCodeのコマンドラインツールをインストールする必要がありそう。
Terminalから以下のコマンドを実行してインストールしました。
$ xcode-select –install
再度、brew installを実行したところ、今度は正常終了しました。
$ php -i
でインストールが成功しているか確かめたところ、mcryptが追加されておらず、うまくいっていない模様。
インストール時のログを確認したところ、/usr/local/Cellar/側のPHPにインストールされていることを確認。
$ which php
の結果、/usr/bin/phpが実行されているため、brewでインストールした効果が無かったことが原因のよう。.bash_profileを修正してPATHの一番最初に/usr/local/Cellar側のPHPのbinを追加し、ログインし直して再度php -i でインストールを確認してみました。
ちゃんとmcryptの設定が入っていることを確認できました。
この状態でMigrationを作成したところ、無事に成功しました。