Edited at

Laravel5の環境設定のためにmcryptをPHPに追加する(ので躓いたのでメモ)

More than 3 years have passed since last update.

Laravel5ではmcryptの拡張が必要です。mcryptはデフォルトのyumでは存在せず、epelとremiに存在します。またmcyrptはlibmcryptを先にインストールしておく必要があるので、順番的に

yum --enablerepo=epel install libmcrypt

yum --enablerepo=epel install mcrypt

でインストールできます!

[vagrant@localhost vagrant]$ yum list installed | grep mcrypt

libmcrypt.x86_64 2.5.8-9.el6 @epel
mcrypt.x86_64 2.6.8-10.el6 @epel

簡単ですね!!、、、とおもったらエラー。

the requested PHP extension mcrypt is missing from your system.

「mcryptがありません。」

えっ!いまmcryptいれたのに。どうやらPHP自体がremiでインストールしたものらしく、epelではなくremiでmcryptをインストールすべきみたいです。

[vagrant@localhost vagrant]$ yum remove mcrypt

[vagrant@localhost vagrant]$ yum --enablerepo=remi mcrypt

ここで注意はlibcryptはremiにないので、これまでアンインストールしてremiで入れ替えようとするとパッケージがないですよ、といわれてしまいます。なので、libcryptはそのままにmcryptだけremiで再インストール。

するとまたしてもエラー。

the requested PHP extension mcrypt is missing from your system.

なに・・・とおもいつつ、ちゃんとインストールされているか確認。

[vagrant@localhost rocket]$ yum list installed | grep php

php.x86_64 5.4.35-1.el6.remi @remi
php-cli.x86_64 5.4.35-1.el6.remi @remi
php-common.x86_64 5.4.35-1.el6.remi @remi
php-devel.x86_64 5.4.35-1.el6.remi @remi
php-gd.x86_64 5.4.35-1.el6.remi @remi
php-mbstring.x86_64 5.4.35-1.el6.remi @remi
php-mysql.x86_64 5.4.35-1.el6.remi @remi
php-pdo.x86_64 5.4.35-1.el6.remi @remi
php-pgsql.x86_64 5.4.35-1.el6.remi @remi
php54-php-common.x86_64 5.4.39-1.el6.remi @remi
php54-php-mcrypt.x86_64 5.4.39-1.el6.remi @remi
php54-runtime.x86_64 2.1-1.el6.remi @remi

うん、されている。。。あ!versionがちょっと違う!!PHPが「5.4.35」に対して、mcryptは「5.4.39」。これは!と思い、

yum --enablerepo=remi update

よし、これでアップデート完了。

[vagrant@localhost rocket]$ yum list installed | grep php

php.x86_64 5.4.39-1.el6.remi @remi
php-cli.x86_64 5.4.39-1.el6.remi @remi
php-common.x86_64 5.4.39-1.el6.remi @remi
php-devel.x86_64 5.4.39-1.el6.remi @remi
php-gd.x86_64 5.4.39-1.el6.remi @remi
php-mbstring.x86_64 5.4.39-1.el6.remi @remi
php-mysql.x86_64 5.4.39-1.el6.remi @remi
php-pdo.x86_64 5.4.39-1.el6.remi @remi
php-pgsql.x86_64 5.4.39-1.el6.remi @remi
php54-php-common.x86_64 5.4.39-1.el6.remi @remi
php54-php-mcrypt.x86_64 5.4.39-1.el6.remi @remi
php54-runtime.x86_64 2.1-1.el6.remi @remi

すべて5.4.39に揃いました。

しかしこれでもだめ!mcryptがmissingといわれてしまいます。結果の画面のにらめっこします。するとまたしてもひらめきが。なぜphp-〜php54-〜の二つがあるんだ?これおかしくないか??

ということで、一旦mcryptを削除してもう一度いれてみます。

[vagrant@localhost rocket]$ sudo yum remove php54-php-mcrypt.x86_64

[vagrant@localhost rocket]$ sudo yum install --enablerepo=remi php-mcrypt.x86_64

すると今度は入りました!!

ちなみにこんな感じ

php.x86_64                           5.4.39-1.el6.remi              @remi       

php-cli.x86_64 5.4.39-1.el6.remi @remi
php-common.x86_64 5.4.39-1.el6.remi @remi
php-devel.x86_64 5.4.39-1.el6.remi @remi
php-gd.x86_64 5.4.39-1.el6.remi @remi
php-mbstring.x86_64 5.4.39-1.el6.remi @remi
php-mcrypt.x86_64 5.4.39-1.el6.remi @remi
php-mysql.x86_64 5.4.39-1.el6.remi @remi
php-pdo.x86_64 5.4.39-1.el6.remi @remi
php-pgsql.x86_64 5.4.39-1.el6.remi @remi
php-theseer-fDOMDocument.noarch 1.6.0-2.el6.remi @remi
php-xml.x86_64 5.4.39-1.el6.remi @remi
php54-php-common.x86_64 5.4.39-1.el6.remi @remi
php54-runtime.x86_64 2.1-1.el6.remi @remi

ふう。。結構時間かかりました。