それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

SuversionもいいけどPEARもね

ソースコードの管理は悩ましい問題。SVNで保存していくのは楽だし CheckOutして、取り出すのも楽になった。ただ、アプリケーションに組み込むのはやっぱり面倒だ。依存モジュール解決とか、Includeするパスの解決とか。
そこでPEARサーバーを自前で用意してみることにする。

PEAR_Severのインストール

まずは必要なモジュールを用意

#>pear channel-discover pear.chiaraquartet.net
#>pear channel-update pear.chiaraquartet.net
#>pear install --alldeps -f chiara/Chiara_PEAR_Server

次にWEBにScriptを公開する

pearのようなとまでは行かないけれど、パッケージをブラウズできるように。

MySQLが必要

mysql にデータを格納するので、DB接続ユーザーを準備しておく。( localhostMySQL に DB:pear をつくれるUser:pear,pass:pear がデフォルト。ユーザーにCREATE権限があれば勝手にDATABASEを作ってくれる。というか勝手に作るので、事前に作っておくとダメかも。)

#>mkdir pear.bookmacro.com
#>cd pear.bookmacro.com
#>pear run-scripts chiara/Chiara_PEAR_Server
...(質問に答えていく


これで、できあがり。
ちなみにハマりそうなのが、いくつか。

Channel Administrator Handle: これが管理画面へのログイン名になるので注意。
Suggested Channel Alias: Ethna/* symfony/*とか書くあれ。
name of frontend.php HTML admin frontend file[]:管理画面ページ名。 

これで、スクリプトをWEBブラウザから開けばOK.

パッケージがないPEARサーバーはさびしい、ログインしてもなーーーーーーーんも無いです。

じゃ、ソースをパッケージに

主な流れ
#>cd My/Package/Dir
#>pear install --alldeps PEAR_PackageFileManager
#> pear list-files PEAR_PackageFileManager | grep make //どこにサンプルが
doc  /usr/share/php/docs/PEAR_PackageFileManager/examples/makepackage.php
#>cp makepackage.php . //これコピー
#>vim makepackage.php  //編集方法はググる
#>php makepackage.php make *1
#pear package package2.php

makepackage.php が package2.xmlを生成してくれるので、それを使う。
設定の仕方は見ればわかる。setChannelとsetMaintainterは忘れずに

makepackageは、既存のpackage.xml/package2.xmlを読み込んで該当部分を変更しようと試みるようだった。大幅な変更があるときや間違いがあったときは、XMLのパーサー部分で止まってしまった。エラー出たらXMLファイルを消すとうごいた。。

出来上がったパッケージを登録しようぜ!!

http://path.to.my.pear/admin.php

にログインして

  1. パッケージ情報を追加
  2. パッケージ情報にMaintainerを追加
  3. パッケージをアップロード

の順。パッケージのUPLOADでpear.php.netがlocalじゃないです!!と怒られたら、pear packageが失敗しているので、makepackage.phpからやり直し(setChannel)

ログインなくても使えるように

#>pear channel-discover pear.crtx.org
#>pear channel-update pear.crtx.org
#>pear install --alldeps crtx/Crtx_PEAR_Channel_Frontend
#>pear list-files crtx/Crtx_PEAR_Channel_Frontend | grep ex
//何処にあるかな?
#>cp path/to/examples/* path/to/my/pear/web/

これで
http://path.to.my.pear/index.php
にアクセス

焦るな。DB_DATAOBJECTエラーが出るぞ

index.phpはDB情報を知らないので教えてやる。

ドキュメントも欲しいなぁ

#>pear install PhpDocumentor

これでZend FrameWorkEthnaのようなドキュメントを作る。

ワインレッドはダサいよね?

PEARサーバーなのにワインレッドはダサイ。管理画面とindex.phpの配色は好きじゃない。H1とか#menuを触るとOKなんかな

さぁPEARコマンドを使ってみよう。

と、そのまえにchannel.xmlを書き換える。

    <baseurl type="REST1.1">http://pear.bookmacro.com/Chiara_PEAR_Server_REST/</baseurl>

この行を削除してやらないと、最新のPEAR

#>pear channel-discover pear.bookmacro.com
#>pear channel-update pear.bookmacro.com//これが出来なくなる。

channel-update でこけるときは channel.xmlを確認することが必要らしい。

*1:引数を与えて実行するようだ WEB+DB PRESS 33とちょっと違うね