先日、ローカルで開発していたPHPをサーバーにアップして、composerでライブラリをアップデートしようとしたところ、 "The mcrypt extension is missing. Please check your PHP configuration." なるエラーがでてしまい、アップデートができず・・・
ようはPHPのライブラリがインストールされていなかったようです。
結構手間取ったんでメモしときます。
1 2 3 4 5 |
wget http://museum.php.net/php5/php-5.6.1.tar.xz tar xvf- php-5.6.1.tar.xz cd php-5.6.1/ext/mcrypt/ ./configure --with-mcrypt make |
ここで無情にも
1 2 |
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. configure: error: mcrypt.h not found. Please reinstall libmcrypt. |
とエラーがでしまう。いろいろ調べると別途ライブラリをインストールしないといけないっぽい。
http://re2c.org/install/install.htmlからソースをダウンロードし(※wgetではなぜかダメでした。)、サーバーに転送した後下記のようにコンパイルを行う。
1 2 3 4 5 6 7 8 9 10 11 |
tar zxvf re2c-0.16.tar.gz cd re2c-0.16 ./configure make make install yum install libmcrypt libmcrypt-devel //エラーがでていなければようやくmcryptのコンパイルに入れる cd php-5.6.1/ext/mcrypt/ make make install //ここでInstalling shared extensions: というメッセージのあとにライブラリのパスが出力される |
このあと先ほどのパスをphp.iniに書き込む
1 2 |
extension_dir = "先ほど出力されたパス" extension=mcrypt.so |
ここでサーバー再起動すれば無事,composerのアップデートができました。
参考リンク