macOS Sierraにアップデートした影響かわかりませんが、ローカル環境のLaravelが「Mcrypt PHP extension required.」で動かなくなった時にやったことを書きます。
環境
OS:macOS Sierra
PHP: 5.6
原因
PHPとMcryptのバージョンが合っていないのが原因でした。
やったこと
PHPのバージョンの確認
Laravelのpublicディレクトリ内に「phpinfo_test.php」を配置
phpinfo_test.php
<?php
phpinfo();
?>
ブラウザでローカルのphpinfo_test.phpにアクセスしてPHPのバージョンを確認。
mcrypt のバージョンを確認
brewでmcryptをインストールしていたのでターミナルで調べました
ターミナル
brew list
結果
省略 mcrypt php55-mcrypt
phpとmcryptのバージョンがあっていないことがわかりました。
バージョンが合っていた場合、別の原因が考えられます。
現行のmcryptをアンインストール
ターミナル
brew uninstall php55-mcrypt
brew uninstall mcrypt
mcryptをインストール
まずはインストールすべきmcryptを探す
ターミナル
brew search mcrypt
mcryptをインストールします。
ターミナル
brew install homebrew/php/php56-mcrypt
※brewが別バージョンのPHPをインストールしていてインストールできない場合、別バージョンのPHPをアンロックする必要があります。(ターミナルでbrew unlink php55)
php.iniを編集
mcrypt.soの場所を探す
ターミナル
sudo find / -name mcrypt.so
結果
/usr/local/Cellar/php56-mcrypt/5.6.30_4/mcrypt.so
php.iniを編集。(php.iniの場所は環境によって違う場合があります。phpinfo_test.phpで確認できます。)
ターミナル
sudo vim /etc/php.ini
以下を書き込みして保存
extension=/usr/local/Cellar/php56-mcrypt/5.6.30_4/mcrypt.s
apacheの再起動
ターミナル
sudo apachectl restart
まとめ
以上の対応で再びLaravelが動作しました!