# yum -y install php-mcrypt
Setting up Install Process
Package php-mcrypt-5.3.3-1.el6.rf.x86_64 already installed and latest version
Nothing to do
インスト済なのに
# yum remove php-mcrypt
# yum -y install php-mcrypt
Installed:
php-mcrypt.x86_64 0:5.3.3-1.el6.rf
# service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
しても、
mcrypt 拡張をロードできません。PHP の設定を確認してください
(謎
php.iniを見ると、
;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;
phpの拡張モジュールは /etc/php.d にiniファイルを配置すればいいらしい。
そこには/etc/php.d/mcrypt.ini があった。
; Enable mcrypt extension module
extension=module.so
と書いてある。
# find / -name module.so -print
しかし、見つからなかった。
その先の答えはコマンドプロンプトにあった。
# php
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/module.so’ – /usr/lib64/php/modules/module.so: cannot open shared object file: No such file or directory in Unknown on line 0
^C ※入力待ちになっているので、Ctrl+Cで止めなといけない。
こっちかな?
# php -v
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/module.so’ – /usr/lib64/php/modules/module.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.3.3 (cli) (built: Feb 22 2013 02:51:11)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
64ビット版のLinuxのPHPが使うモジュールは、
/usr/lib64/php/modules/の下にあるらしい。
確かに
/usr/lib64/php/modules/module.so
は無く、
/usr/lib64/php/modules/mcrypt.so
がソレっぽかった。
/etc/php.d/mcrypt.ini を修正
extension=mcrypt.so
に書き換え、service httpd restartでOK。
トラブルが起こると、Linuxの中身に詳しくなれるね。
無線LANでも、/etc/sysconfig/network-scriptsの中のシェルファイルを読んでみたりと、
プロの運用でも一生読むことが無さそうなソースを読む機会に恵まれる。(大笑
※尚、この問題は現在(CentOS6.6)も修正されておりません。CentOS7では修正済。2014/11/3