PHP/php-mcrypt

Last-modified: 2014-02-22 (土) 12:44:01
最終更新:2014-02-22 (土) 12:44:01
アクセス数(合計):20795
利用者; 1 アクセス数(本日):1 アクセス数(昨日):0

LAMPサーバに暗号化モジュール php-mcryptを導入する。


WEB通信に暗号化が必要な場合に、暗号化モジュールを提供する。
php-mcryptを必要とするアプリケーションは以下



OS    CentOS 6.5 64bit版
サーバIP192.168.0.10/24
ホスト名hogehogeServer
user   hogehoge
userpasswdhogehogepass
作業フォルダ/home/hogehoge
  • コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
  • コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。
  1. CentOSインストール 実施
  2. yumリポジトリ設定 実施
  3. yumリポジトリ設定(拡張) 実施  ★環境1:インタネットへのアクセス可能時
  4. yumリポジトリ設定(独自) 実施  ★環境2:インタネットへのアクセス不可時
  5. LAMPサーバ構築 実施

【Telnet】

  • rootでログイン
$ su
パスワード:

★サーバ環境にあわせて以下rpmのyumリポジトリ登録を実施

★手順 yumリポジトリ設定(拡張)#epel にてリポジトリにrpmforgeを登録


  • 確認
# yum  --enablerepo=rpmforge list all | grep mcrypt
libmcrypt.x86_64                           2.5.7-1.2.el6.rf            rpmforge
php-mcrypt.x86_64                          5.3.3-1.el6.rf              rpmforge

★手順 yumリポジトリ設定(独自)#rpm にて独自リポジトリにrpmを登録


[今回実施手順]

  • ユーザエリア「/home/hogehoge」にrpmファイルをアップ
  • ファイルコピー
# cp libmcrypt-* /home/yum/rpm/
# cp php-mcrypt-* /home/yum/rpm/
  • リポジトリ登録
# createrepo -v /home/yum/rpm/

★手順 yumリポジトリサーバ#server にてリポジトリサーバにrpmを登録


[今回実施手順(yumリポジトリサーバ側)]

  • ユーザエリア「/home/hogehoge」にrpmファイルをアップ
  • ファイルコピー
# cp libmcrypt-* /var/www/html/yum/rpm/
# cp php-mcrypt-* /var/www/html/yum/rpm/
  • リポジトリ登録
# createrepo -v /var/www/html/yum/rpm/

【Telnet】

  • yumキャッシュクリア
# yum clean all
  • インストール

★環境1の場合

# yum --enablerepo=rpmforge install php-mcrypt
================================================================================
 Package           Arch          Version                  Repository       Size
================================================================================
Installing:
 php-mcrypt        x86_64        5.3.3-1.el6.rf           rpmforge         42 k
Installing for dependencies:
 libmcrypt         x86_64        2.5.7-1.2.el6.rf         rpmforge        196 k

★環境2,3の場合

# yum install php-mcrypt
  • mcrypt.ini情報確認
# cat /etc/php.d/mcrypt.ini
extension==mcrypt.so

★もし「extension=module.so」であった場合は以下手順で書き換え

# vi  /etc/php.d/mcrypt.ini
  • 修正
    extension=module.so
       ↓
    extension=mcrypt.so
  • http再起動
# /etc/rc.d/init.d/httpd restart
httpd を停止中: [  OK  ]
httpd を起動中: [  OK  ]
  • 終了
# exit
exit
$

【Telnet】

  • ログイン
$ su
パスワード:
  • パッケージ確認
# ls -l
-rw-rw-r--  1 hogehoge hogehoge 200829 11月 11 15:30 2010 libmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm
-rw-rw-r--  1 hogehoge hogehoge  43092  3月  4 10:32 2013 php-mcrypt-5.3.3-1.el6.rf.x86_64.rpm

d

  • インストール
# rpm -ivh php-mcrypt-5.3.3-1.el6.rf.x86_64.rpm libmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm

準備中... ########################################### [100%]

  1:libmcrypt              ########################################### [ 50%]
  2:php-mcrypt             ########################################### [100%]
  • Apache再起動
# /etc/rc.d/init.d/httpd restart
httpd を停止中:          [  OK  ]
httpd を起動中:          [  OK  ]
  • 終了
# exit
exit
$

問題:

★epel からrpmをインストールする場合
yum install php-mcrypt」コマンドで「Nothing to do」となってファイルが見つからない

原因:

yumコマンドに「--enablerepo=epel」パラメータ付け忘れ

問題:

バージョン確認を行うとエラーが発生

# 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

原因:

「/etc/php.d/mcrypt.ini」 設定誤り

# vi  /etc/php.d/mcrypt.ini
  • 修正
    extension=module.so
       ↓
    extension=mcrypt.so

★rpmforge内モジュールの設定ミス

テキスト作成に当たり、以下サイトを参考にさせて頂きました。ありがとうございます。

http://centossrv.com/apache.shtml
http://centossrv.com/mysql.shtml
http://blog.cheki.net/archives/349
http://i-am.web777.net/2007/03/mysql_utf8.html
http://colo-ri.jp/develop/2013/01/64bit_centos6_php-mcrypt_install.html
http://sakisai.com/saki/blog/?p=154