LAMPサーバ php-mcrypt導入
LAMPサーバに暗号化モジュール php-mcryptを導入する。
目的
WEB通信に暗号化が必要な場合に、暗号化モジュールを提供する。
php-mcryptを必要とするアプリケーションは以下
構築条件
構築機器
- 仮想サーバ SUN VirtualBox 4.3 Hyper-V で構築
作成環境
OS | CentOS 6.5 64bit版 |
サーバ作成条件
サーバIP | 192.168.0.10/24 |
ホスト名 | hogehogeServer |
user | hogehoge |
userpasswd | hogehogepass |
作業フォルダ | /home/hogehoge |
手順記入ルール
- コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
- コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。
ファイル入手
サイト
- php-mcrypt
http://php.net/manual/ja/ref.mcrypt.php
今回インストールしたファイル
- ダウンロードサイト
http://wing-net.ddo.jp/wing/
- インストールファイル(64bit版)
http://ftp.riken.jp/Linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/php-mcrypt-5.3.3-1.el6.rf.x86_64.rpm
http://ftp.riken.jp/Linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/libmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm
前準備
- CentOSインストール 実施
- yumリポジトリ設定 実施
- yumリポジトリ設定(拡張) 実施 ★環境1:インタネットへのアクセス可能時
- yumリポジトリ設定(独自) 実施 ★環境2:インタネットへのアクセス不可時
- 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