【CentOS】CentOS 5.6でphpを5.3系にバージョンアップしてみる その3(phpmyadmin)

スポンサーリンク

php5.3.3環境にphpmyadminをyumでインストールしてみました。

他のphp5.3関連の記事はこちら
CentOS 5.6でphpを5.3系にバージョンアップしてみる その1(php本体と関連パッケージ)
CentOS 5.6でphpを5.3系にバージョンアップしてみる その2(pear)

1.phpmyadminをdagレポジトリからインストールする。

1-1.phpmyadmin用のyumレポジトリ(dag)を追加。既にdagレポジトリを追加している場合は省略可。

# touch /etc/yum.repos.d/phpmyadmin.repo
# vi phpmyadmin.repo
↑以下の内容を書きこんで保存
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/
gpgcheck=1
enabled=0

1-2.GPGキーのインポート&インストール。既にdagレポジトリを追加している場合は省略可。

# wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
# rpm --import RPM-GPG-KEY.dag.txt

1-3.yumでphpmyadminをインストール

yum install --enablerepo=dag phpmyadmin

としてもphp53-commonとphp-commonがconflict(衝突)しているようではねられます。エラーメッセージはこんな感じ。

php53-common-5.3.3-1.el5_6.1.x86_64 from installed has depsolving problems
  --> php53-common conflicts with php-common
Error: php53-common conflicts with php-common
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.

とりあえずpackage-cleanupコマンドを使うためにyum-utilsをインストール

#yum install yum-utils
#package-cleanup --problems
#package-cleanup --dupes

その後#yum install –enablerepo=dag phpmyadmin としてもやっぱり同じエラーで止まる…うーむ。パッケージをyumdownloaderでダウンロードして、それをrpmで強制的にインストールしてみます。

1-4.phpmyadminをRPMからインストールする

# yumdownloader --enablerepo=dag phpmyadmin
(中略)
phpmyadmin-2.11.11.3-2.el5.rf.noarch.rpm                             | 4.2 MB     00:01
# rpm -ivh --nodeps phpmyadmin-2.11.11.3-2.el5.rf.noarch.rpm

これでちょっと強引ですがphpmyadminがインストールできました。

1-5.ブラウザからアクセスできるようにする
上の方法でphpmyadminをインストールした場合/etc/httpd/conf.d/phpmyadmin.confにapache用の設定ファイルが出来てます。初期状態だとローカルからしかアクセスできないので頑丈ですが、インターネット越しで使えないので設定ファイルを修正します。phpmyadminはそこそこ狙われるので、できればBASIC認証ぐらいはかけておいたほうがいいです。

# htpasswd -c /usr/local/apache/.htpasswd-users user
※パスワードを2回入力する
New password:
Re-type new password:
Adding password for user user
# chmod 644 /usr/local/apache/.htpasswd-users

#vi /etc/httpd/conf.d/phpmyadmin.conf

<Directory "/usr/share/phpmyadmin">
  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1
</Directory>
<Directory "/usr/share/phpmyadmin">
  Order Allow,Deny
  Allow from all

# BASIC Authentication
  AuthName "users"
  AuthType Basic
  AuthUserFile "/usr/local/apache/.htpasswd-users"
  Require valid-user
</Directory>

1-6.phpmyadminのconfigファイルにcrypt_browfish用のデータを設定する
/usr/share/phpmyadmin/config.inc.phpがphpmyadminのconfigファイルなので、これにcrypt_browfish用のデータを設定します。

# vi /usr/share/phpmyadmin/config.inc.php
↑
17行目 $cfg['blowfish_secret'] = '';にランダムな文字列を設定
(# mkpasswd -l 15 で15文字のランダム文字列が作成できる)

1-7.apacheをgracefulで起動する

#apacehctl graceful

1-8.ブラウザからphpmyadminにアクセスする
http://<ホスト名>/phpmyadmin/
これでBASIC認証後にphpmyadminのログイン画面が表示されれば成功です。

2.phpmyadminに必要なphp-mcryptを作成する
このままだとphpmyadminを実行したときに「mcrypt 拡張をロードできません。PHP の設定を確認してください」という注意が出るので、この注意を消すためにphp-mcryptをインストールします。php53用のphp-mcryptパッケージはないようなので、PHPのソースから作ります。

2-1.ソースをダウンロードする

# wget http://museum.php.net/php5/php-5.3.3.tar.gz

2-2.ソースからphp-mcryptをmakeする

# tar xvzf php-5.3.3.tar.gz
# cd php-5.3.3/ext/mcrypt
# phpize
# aclocal
# ./configure
(中略)
configure: error: mcrypt.h not found. Please reinstall libmcrypt.

このエラーを解決するためにlibmcryptとlibmcrypt-develパッケージをインストールします

# yum install libmcrypt
# yum install libmcrypt-devel

再度configureし、エラーが出ないようならmakeしinstallします。

# ./configure
(中略)
configure: creating ./config.status
config.status: creating config.h
# make && make install

2-3.php-mcryptモジュールを有効にするために、/etc/php.iniを編集します

# vi /etc/php.ini
※末尾に下の内容を追加する
extension=mcrypt.so

2-4.php.iniの変更内容を反映させるために、apacheをgracefulで再起動する

# apachectl graceful

これでmcryptが使えるようになり、「mcrypt 拡張をロードできません。PHP の設定を確認してください」という注意が出なくなるとおもいます。出たままの場合は、ブラウザのキャッシュをいったん削除してみるといいかも。php5.3.3環境でphpmyadminが一通り使えるようになると思います。

下記の記事を参考にしました。ありがとうございます。
・PHPソースからのmcryptの作り方PHP: インストール手順 – Manual
・エラー「configure: error: mcrypt.h not found. Please reinstall libmcrypt.」の解決方法PHPのインストール(1) – Linux備忘録

コメント

  1. mcrypt拡張がツンデレすぎて手こずったお話

    研究資料まとめるのにも飽きたので、たまには作業記録でも

    phpMyAdminで
    「mcrypt 拡張をロードできません。PHP の設定を確認してください」
    と出ていたのが気になった。
    ということでph…