decadence

個人のメモ帳

PEARにおけるDBの導入(MAMP)

MAMPにPEARを入れるのに苦戦してます
通常に/Application/MAMP/bin/php5.3/bin/pearがあるんですがこれをターミナルで色々していきます

$ /Applications/MAMP/bin/php5.3/bin/pear install  http://pear.php.net/get/DB
downloading DB-1.7.14RC2.tgz ...
Starting to download DB-1.7.14RC2.tgz (133,426 bytes)
.............................done: 133,426 bytes
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
pear/Console_Getopt requires PEAR Installer (version >= 1.9.1), installed version is 1.9.0
pear/PEAR requires package "pear/Console_Getopt" (recommended version 1.2.3)
pear/DB requires package "pear/PEAR" (version >= 1.0b1)
downloading Archive_Tar-1.3.7.tgz ...
Starting to download Archive_Tar-1.3.7.tgz (17,610 bytes)
...done: 17,610 bytes
downloading Structures_Graph-1.0.4.tgz ...
Starting to download Structures_Graph-1.0.4.tgz (30,318 bytes)
...done: 30,318 bytes
downloading XML_Util-1.2.1.tgz ...
Starting to download XML_Util-1.2.1.tgz (17,729 bytes)
...done: 17,729 bytes
install ok: channel://pear.php.net/Archive_Tar-1.3.7
install ok: channel://pear.php.net/Structures_Graph-1.0.4
install ok: channel://pear.php.net/XML_Util-1.2.1

PEAR Installerのバージョンが古いのかな
取りあえずぐぐってこれでいけました!的なpearのアップグレードをやってみる

$ /Applications/MAMP/bin/php5.3/bin/pear upgrade pear
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
pear/Console_Getopt requires PEAR Installer (version >= 1.9.1), installed version is 1.9.0
pear/PEAR requires package "pear/Console_Getopt" (recommended version 1.2.3)

とりあえずpear channel-update pear.php.netをして警告を消しておくとして問題はここか

pear/Console_Getopt requires PEAR Installer (version >= 1.9.1), installed version is 1.9.0
pear/PEAR requires package "pear/Console_Getopt" (recommended version 1.2.3)

なんだよこれー!できねーよー!とか思ってたんですが最終的にこうなりました

$ /Applications/MAMP/bin/php5.3/bin/pear upgrade --force PEAR

強制的にアップデートしろよおらー!だそうです
そんなわけで

$ /Applications/MAMP/bin/php5.3/bin/pear install DB
WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
downloading DB-1.7.13.tgz ...
Starting to download DB-1.7.13.tgz (132,246 bytes)
.............................done: 132,246 bytes
install ok: channel://pear.php.net/DB-1.7.13

$ /Applications/MAMP/bin/php5.3/bin/pear list
Installed packages, channel pear.php.net:
=========================================
Package          Version State
Archive_Tar      1.3.7   stable
DB               1.7.13  stable          ←確認
PEAR             1.9.1   stable          ←確認
Structures_Graph 1.0.4   stable
XML_Util         1.2.1   stable

無事入った模様…
大丈夫かな…
Console_Getoptまたダウンロード失敗してるんだけど使わないから良いよね…


ほんでもっていざ実行という事でサンプル

<html>
<head><title>PHP TEST</title></head>
<body>
<?php
require_once("DB.php");
echo 'success!';
?>
</body>
</html>

出来なかったんですよねー
DB.phpなんかねーよとか言われてしまいました
取りあえず探したら
/Applications/MAMP/bin/php5/lib/php/DB.php
って感じでありました
php5.3使ってるんじゃねーのはぁ?って感じだったんで結局は/Applications/MAMP/conf/php5.3/php.iniの内容を以下のように書き換えました

include_path = ".:/Applications/MAMP/bin/php5.3/lib/php:/Applications/MAMP/bin/php5/lib/php"

そっちにあるならそっちにパス通してやろうじゃないか

ようやく繋がりました…
ついでに基礎からのPHP使ってる人には
require_once()は()なかったりしたら使えないんで注意をば
requireなら適当にでもいけるんですけどね
さーようやく環境出来たしやるかー