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備忘録
コメント
mcrypt拡張がツンデレすぎて手こずったお話
研究資料まとめるのにも飽きたので、たまには作業記録でも
phpMyAdminで
「mcrypt 拡張をロードできません。PHP の設定を確認してください」
と出ていたのが気になった。
ということでph…