conf t

インフラエンジニアのメモ

mcryptのインストール

mcryptのインストールをします。

phpで暗号化を試そうとしたのですが、mcrypt関数 (PHP: Mcrypt - Manual)

を使おうとしたらそんな関数はないと怒られた。

Call to undefined function mcrypt_decrypt() in /(省略) on line 12

ググったらどうやらmcryptを使うためにはモジュールを追加しないといけないようなので、追加します。

まずmcryptcentos標準のリポジトリにはないので、EPELをリポジトリに追加します。

# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.8jR18W: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]


EPELリポジトリはオプションをつけた時だけ使えるようにしておく

# cp -p /etc/yum.repos.d/epel.repo{,.20150606}
# vi /etc/yum.repos.d/epel.repo

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=0   ←0にする
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


php-mcryptphpの暗号化モジュールですが、
libmcryptが必要ですのでこちらもインストールします。

# yum --enablerepo=epel install -y libmcrypt

# yum --enablerepo=epel install -y php-mcrypt

# rpm -qR php-mcrypt  ←依存関係を調べる
config(php-mcrypt) = 5.3.3-3.el6
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libmcrypt.so.4()(64bit)    ←libmcryptが必要とわかる
php(api) = 20090626
php(zend-abi) = 20090626
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

以上にてmcryptが使えるようになりした。

参考:

PHPアプリのためにCentOS6.2にlibmcryptをインストール