PHP/php-mcrypt

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

LAMPサーバ php-mcrypt導入

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サーバ構築 実施

手順1:yumにてインストール

yumに暗号化モジュールを登録

【Telnet】

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

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

環境1:インターネットにアクセス可能

★手順 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

環境2:インタネットへのアクセス不可

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


[今回実施手順]

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

環境3:イントラ内にリポジトリサーバ有り

★手順 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
$

手順2:rpmから直接インストール

インストール(rpmから直接インストール)

【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
$

遭遇したトラブル

環境1で php-mcryptがインストールできない

問題:

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

原因:

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

phpバージョン確認でエラー発生

問題:

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

# 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