Help us understand the problem. What is going on with this article?

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

More than 5 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       

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

YusukeHigaki
株式会社ニコリーで代表をしております。起業当初は自分でも開発をしていたのですが、最近はCTO以下、自分より遥かに優秀なメンバーにバトンタッチし、もっぱら企画や営業周りを統括しています。自分で書いていた経験もあり、エンジニアという職種に対するリスペクトは絶大です。
http://ticktockblog.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away