2013年11月6日水曜日

【PHP】pearというphpのパッケージマネージャを使ってみた

■環境
CentOS 5.9 64bit
PHP 5.3.3
pear 2.3.0
apache 2.2.3

■pearインストール
yum -y install php-pear
  • pear list # インストールしてあるモジュールを表示
  • pear list-all # インストール可能なモジュールを一覧表示する
  • pear install hoge  # hogeパッケージをインストールする
  • pear uninstall hoge # hogeパッケージをアンインストールする
  • pear version # pearのバージョンを確認する
pear だけ入力すると各種指定できるコマンドを確認できます

■pear動作検証
※apache上でphpが動作する環境が構築されている前提とします

vim sample.php
以下の内容をコピーします
<?php
    echo "check_ip <br>";
    require_once "/usr/share/pear/Net/CheckIP.php";
    $isip = Net_CheckIP::check_ip("192.168.1.1");
    if ($isip) {
        echo "$isip";
    }
?>

mv sample.php /var/www/html
「/var/www/html」はapacheのDocumentRootです、必要に応じて適宜変更してください
まずこの状態で
http://hostname/sample.php
にアクセスすると「check_ip」とだけブラウザに表示されると思います
つまり、Net_CheckIP::check_ip関数がうまく呼べていない状態で最後の「check ip finish」が表示されていない状況となります

次にpearでモジュールをインストールしてみます
pear install Net_CheckIP
インストール後に再度
http://hostname/sample.php
にアクセスすると
「1 check ip finish」と追加で表示されていることがわかるかと思います
つまり、Net_CheckIP::check_ip関数がうまく呼べたことを意味しておりpearによりインストールしたモジュールが有効になっていることがわかります

ついでにcheck_ipで指定している「192.168.1.1」を「192.168.1.a」とかにして
再度ブラウザで確認すると今度は「check ip finish」の部分だけが表示され if の中に入っていないことがわかります

■Tips
pearでinstallすると.phpファイルがローカルマシン上にダウンロードされるようでデフォルトのままだと「/usr/share/pear」配下に配置されるようです
今回はyumでpearをインストールしたのでyumでインストールした場合は上記パスになると思われます

モジュールの読み込みは「require_once」を使っていますが「require」でも問題ないです

■参考サイト

0 件のコメント:

コメントを投稿