WordPressやPHPなどを主とするブログ
WordPress2.6へアップデートしました。
今回は WordPress を SVN 管理に移行しました。
SVN 管理についてはわーどぷれすっ! » WordPress のアップグレードを簡単に: Subversion の巻に詳しく書かれてあります。
それに加えて、WordPress の日本語版 "非公式" リポジトリを使うと日本語版がストレートにインストールできるので便利です。
自分用もあって忘れないために WordPress.org へプラグインの公開の仕方をメモ。プラグインの作り方ではなく公開の仕方限定。
WordPress.org はプラグインの更新のチェックに trunk/readme.txt と本体ファイルのコメントを使用する。
readme.txt は書式が決まっていて、readme.txt の例を参照。WordPress/BBPress Plugin readme.txt Validator を使用すればバリデートできる。
本体ファイルのコメントは、PHPファイルの先頭に次のようなコメントを書く。
他のプラグインを参考にすれば大体OK。
プラグインのリリースは SVN のタグ付けを使う。
readme.txt と 本体ファイルのコメントのそれぞれ Stable tag と Version の項目をリリースするバージョンにあわせる。
必要なファイルを編集したら SVN でタグ付け。タグ名は数字とピリオドのみを使ったほうが良いと公式のドキュメントには書いてある(1.2.3はOK、ver1.2RC1などはNG← 実際は可能)。
あとは巡回で更新が認識されればプラグインディレクトリーに載る。
だいぶ時間がたってしまい、新機能をずらずらと並べてもしかたありませんので、使ってみて一番気に入った機能を紹介します。
それは・・・速いこと!
カスタマイズ系のアプリケーションによくある弱点がカスタマイズしすぎると重くなるということですが、アドオンを大量に入れても重くならずに使えるというのはこれはもう機能なんじゃないかと。
ブックマークにタグが導入されたなどいろいろありますが、やはり速いのは一番気に入ってます。
ついに来ましたFirefox3。全世界が待ち望んでいた(?)日です。そんなわけで早速ギネスに貢献してきました。私が見たときでは一分間に5000回ダウンロードという数字を出していました。
まず使った感想は、早い!軽い!です。Gmailがトップスピードで開きます。メモリ使用量も改善され、私の環境ではFirefox2が使うメモリのピーク時の半分以下になってます。
これだけではなくまだまだ盛りだくさんなのですが、詳しいことは後でポストしたいと思います。
SVNのログでチケットの操作ができるとっても便利なtrac-post-commit-hookですが、DreamHostで使うには難がありました。
最大の難点は post-commit が dhapacheというユーザーで実行されるということで、これが数々の問題を引き起こします。
色々と実験して解決策を見つけたのでポストします。
なお、解決策は SQLite を使っている場合と MySQL を使っている場合で異なります。
コミット後にスクリプトを実行するため、/home/***/svn/projectid/hooks に post-commit という名前のファイルを作成します。
このファイルがコミット後に実行されるわけですが、dhapache によって実行されるため環境変数の再設定が必要になります。
それなので、.bash_profile などから必要な変数をコピーします。
そして、trac のソースの contrib ディレクトリから trac-post-commit-hook を post-commit と同じディレクトリにコピーします。
さらにsvn_commit_jp.mdから svnlog2utf8 を取得してパスの通るところに置いて実行権を与えます。
post-commitの例(パスなどは適宜変えてください):
HOME='/home/***'
export PYTHONPATH="$HOME/local/lib/python: $HOME/local/lib/python/site-packages"
export LD_LIBRARY_PATH="$HOME/local/lib"
export PYTHON_EGG_CACHE="$HOME/tmp"
export PATH="$HOME/local/bin:$PATH"
REPOS="$1"
REV="$2"
LOG=`svnlook log -r $REV $REPOS | svnlog2utf8`
AUTHOR=`svnlook author -r $REV $REPOS | svnlog2utf8`
TRAC_ENV="$HOME/trac_sites/projectid/"
TRAC_URL="http://trac.example.com/projectid/"
python $REPOS/hooks/trac-post-commit-hook \
-p "$TRAC_ENV" \
-r "$REV" \
-u "$AUTHOR" \
-m "$LOG" \
-s "$TRAC_URL"
SQLiteの場合は dhapache が trac のディレクトリの /db/trac.db(デフォルト) へアクセスする権限を持っていないため、エラーになります。
この場合は trac.db に「chmod o+rw」するしか方法がないと思います。書き込み権限を与えるのはやだなと思うときはMySQLの移行も考えてください(MySQLへのパスワードも dhapache が読み取れる必要があるので同じっていえば同じですが)。
MySQLの場合は、上で設定した「PYTHON_EGG_CACHE」の値が dhapache が書き込みできるディレクトリを指定していて、trac.ini を読み込めればOKです。
SQLite から MySQLへの移行は SqliteToPgScript を使うと便利です。
SqliteToPgScript でMySQLインポートしたら、trac.ini の database の指定を「mysql://user:password@host/database」のようにすればOKです。
Regenが更新するブログです。
WordPressやPHPが主な内容です。
毎日更新はできませんが、できるだけポストしていきます。