あべてっく

役に立ったり立たなかったりする内容を備忘録的にちょこちょこと。
 

PHPMyAdminインストール 〜 PHP5.3の甘い罠に若奥様は何を思ったのか

投稿日 2012年4月14日  カテゴリ : PHP ,サーバー  タグ :

タイトルにあまり意味はありません(^^

以前CloudCoreにWebminとVirtualmin入れる話を書きましたが、
その後同じサーバーにPHPMyAdmin入れようとして少しはまってしまったのでそれを書きます。

前回自分はCloudcoreVPSのCentOS5.8にPHP5.3を入れました。
これはファイル名で言うとphp53で、それとは別にファイル名phpがあります。
ファイル名php53とphpは血は繋がってますがちょっとだけ別の子なようです。

少しややこしいのですが、phpはyumを使って標準レポジトリから入れようとすると、
PHPバージョン5.1が入ってきます。PHP53はPHPバージョン5.3です。
5.1と5.3では中身に結構違いがあるのか、PHPを利用する他のアプリケーションでも
PHP5.3以上対応といった物がぼちぼちあります。
php53は一応バージョン5.3なので、何も考えずにそんなもんかと思ってこれを入れましたが、
このphp53、なんかpearが無いとかmcryptが無いとか、癖がある感じです。

pearについてはphp-pear入れて、それを強引にアップデートする事で何とかなりましたが、
その後PHPMyAdminをyumで入れようとして、以下のエラーに出くわしました。

php53-common-5.3.3-5.el5.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

PHPMyAdminの依存ファイルphp-commonを入れようとしてるのですが、なんかもうphp53-commonが
先に入ってて、そいつらがケンカしてますよ、と(・ω・`

とりあえず調べると、どうやらこのphp-common、上のphp-mcryptと関係があるようです。
CentOS5.6で、PHP53にmcryptが入らない問題

それからエラーメッセージ内で示唆されてるコマンド

package-cleanup –problems

で解決した例もあったので、試してみたのですがだめでした。

その後も調べたのですが、

・PHP53用mcryptはPHPをコンパイルして手動で入れる
・ファイル名をちょっと変えた形で入れる

入れるにも消すにも少し手間がかかりそうです。
できればyumで依存ファイルも一緒にさくっと入れられて、いらなくなったらさくっと消せるようにしたいので
そういう方法を探していたのですが、おおっと、ここで救いの神がw

CentOS5.4 に MySQL5.1,PHP5.3とphpMyAdmin

yumで複数のレポジトリを組み合わせれば、php53を使わずともphpバージョン5.3が入っちゃうという素晴らしさw
早速今まで入ってたphp53をアンインストールします。

[root@hogehoge etc]# yum remove php53*
Loaded plugins: fastestmirror, priorities
Setting up Remove Process
Resolving Dependencies
–> Running transaction check
—> Package php53.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-cli.x86_64 0:5.3.3-5.el5 set to be erased
–> Processing Dependency: php-cli >= 5.1.0-1 for package: php-pear
—> Package php53-common.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-devel.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-gd.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-imap.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-mbstring.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-mysql.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-odbc.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-pdo.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-snmp.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-soap.x86_64 0:5.3.3-5.el5 set to be erased
—> Package php53-xmlrpc.x86_64 0:5.3.3-5.el5 set to be erased
–> Running transaction check
—> Package php-pear.noarch 1:1.9.4-5.el5.remi set to be erased
–> Finished Dependency Resolution
…..

そんでレポジトリコンビネーション攻撃でphpげっとだぜw
remiやらepelはいわゆる野良レポジトリですが、今まで使ってきてとりあえず問題なかったので今回も遠慮なく使いますw

[root@hogehoge etc]# yum –enablerepo=remi,epel,rpmforge install php*
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* epel: ftp.kddilabs.jp
* remi: remi-mirror.dedipower.com
* rpmforge: apt.sw.be
Setting up Install Process
No package php_mcrypt.h available.
No package php_mcrypt_filter.h available.
Nothing to do

おや(・・`

なんだかmcryptのなんかが無いてゆわれてますねorz

ではmcryptから入れてみます。

[root@hogehoge etc]# yum –enablerepo=remi,epel,rpmforge install php-mcrypt
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* epel: ftp.iij.ad.jp
* remi: remi-mirror.dedipower.com
* rpmforge: apt.sw.be
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package php-mcrypt.x86_64 0:5.3.10-2.el5.remi set to be updated
–> Processing Dependency: php-common = 5.3.10-2.el5.remi for package: php-mcrypt
–> Processing Dependency: libltdl.so.3()(64bit) for package: php-mcrypt
–> Running transaction check
—> Package libtool-ltdl.x86_64 0:1.5.22-7.el5_4 set to be updated
—> Package php-common.x86_64 0:5.3.10-2.el5.remi set to be updated
–> Finished Dependency ResolutionDependencies Resolved

バージョン5.3.10キター━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)━━!!!

php53の5.3.3に比べてマイナーバージョンが若干上がってます。
テンション上がったので続けてガンガン行きます。

yum –enablerepo=remi,epel,rpmforge install php
yum –enablerepo=remi,epel,rpmforge install php-gd php-imap php-mysql php-odbc php-snmp php-xmlrpc php-mbstring php-pear php-soap php-devel

pearもさくっと入ってくれましたw

んで今回の本命PHPMyAdminをインストールします。

[root@hogehoge etc]# yum –enablerepo=remi,epel,rpmforge install phpmyadmin
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* epel: ftp.iij.ad.jp
* remi: remi-mirror.dedipower.com
* rpmforge: apt.sw.be
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package phpmyadmin.noarch 0:2.11.11.3-2.el5.rf set to be updated
–> Finished Dependency ResolutionDependencies Resolved

ほっほっほ。素晴らしい。実に素晴らしい(^ω^

これでインストールは終了ですが、PHPMyAdminは

/etc/httpd/conf.d/phpmyadmin.conf

でファイルの置き場所やらアクセス制限等の設定を行っています。
デフォルトでは、PHPMyAdminフォルダはローカルホスト以外からアクセスできないようになってました。
(まあここでまた少しハマったわけですがorz)
もしPHPMyAdminフォルダの場所を変更したいとか、
リモートサーバー上で動かしたい場合はこのファイルを修正する必要があります。

修正が終わったらhttpd再起動して、ブラウザでphpmyadminフォルダにアクセスし、ログイン画面出ればおkですw
あとはDB接続設定やらBlowfish設定やらの内部設定になるので、今回はこんな感じでどっとおはらいw
 
 

はじめてのPHP、MySQL、Apache―この1冊でPHP、MySQL、Apacheのすべてを習得できる
ジュリー・C. メローニ
ピアソン桐原
売り上げランキング: 210,814

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です