Mac OS XのMavericksでComposerを使用しようとしたら、「mcryptねーよ!」って怒られたので、mcrypt拡張を有効にするまでの顛末。基本的には下記のサイトを参考にして進めました。
Mac Lion PHP mcrypt brew | 見なかったことにしてください
手順
- homebrewでmcryptをインストール
- mcryptの拡張モジュールをコンパイル&インストール
- PHPでmcrypt拡張を有効にする
homebrewでmcryptをインストール
(homebrewが入っている前提で)下記コマンドでmcryptをインストールすればOK。
brew install mcrypt
mcryptの拡張モジュールをコンパイル&インストール
下記コマンドでMacに入っているPHPのバージョンを確認。自分の場合は「PHP 5.4.24」でした。
php -v
PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
次に、入っているPHPのバージョンに合わせたソースのダウンロードURLをPHP公式から探します。拡張子は「tar.gz」のファイルで。
URLが分かったら、下記コマンドのURL、バージョン部分を置き換えて実行。(PHPをダウンロード&解凍して、mcryptディレクトリに移動します)
curl --location -s http://nl3.php.net/get/php-5.4.24.tar.gz/from/nl1.php.net/mirror | tar -zx
cd php-5.4.24/ext/mcrypt/
次にmcrypt拡張のコンパイルとインストールを行う…その前に、phpizeが使えるかを確認します。ちなみに自分の場合は使えませんでした。
phpize -v
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
こんな感じでPHP Api Versionが表示されれば使えるはずです。使えない場合、下記を参考にしてphpizeを使えるようにして下さい。
Mac OS X Mavericksでphpizeを使用する方法 | ぢぇんのブログ
ここまで準備が出来たら、mcrypt拡張をコンパイル&インストールします。
cd php-5.4.24/ext/mcrypt/
phpize
./configure
make -j6
make test
sudo make install
PHPでmcrypt拡張を有効にする
MacのPHPはデフォルトでphp.iniを参照していないので、php.iniを参照するようにdefaultファイルからコピーして編集します。php.ini.defaultファイルをコピーしてphp.iniを作成し、viエディタでphp.iniにmcrypt拡張を有効にする記述を追加したのち、apacheを再起動します。
php.iniの編集は、「;extension=****」が並んでいる部分の最後らへんに、「extension=mcrypt.so」の行を追記してファイルを上書きすればOKです。
sudo cp /etc/php.ini.default /etc/php.ini
sudo vi /etc/php.ini
sudo apachectl restart
下記コマンドを実行して、「mcrypt support => enabled」の記述があればインストール完了です。
php -i | grep -i mcrypt