Mac OS X MavericksのPHPでmcrypt拡張を有効にする

Mac OS XのMavericksでComposerを使用しようとしたら、「mcryptねーよ!」って怒られたので、mcrypt拡張を有効にするまでの顛末。基本的には下記のサイトを参考にして進めました。

Mac Lion PHP mcrypt brew | 見なかったことにしてください

手順

  1. homebrewでmcryptをインストール
  2. mcryptの拡張モジュールをコンパイル&インストール
  3. 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」のファイルで。

PHP: Releases

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です