ソースコードの管理は悩ましい問題。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接続ユーザーを準備しておく。( localhostのMySQL に 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
にログインして
- パッケージ情報を追加
- パッケージ情報にMaintainerを追加
- パッケージをアップロード
の順。パッケージの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コマンドを使ってみよう。
と、そのまえに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とちょっと違うね