LaravelでMigrationを作成しようと思ったところ、”Mcrypt PHP extension required.”というエラーが出たため、その解消法をまとめました。

ネットで調べたところ、エラーメッセージ通りにMcryptというPHPの拡張モジュールをインストールすれば良いとのこと。

brewのインストールはAnsibleの導入時に記載したとおり以下のコマンドを実行する。

早速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を作成したところ、無事に成功しました。

Leave a Reply

Your email address will not be published. Required fields are marked *