このページの記事一覧

CORESERVERにtracをインストールする方法

Trac

まだ、自分には使う機会がないけど、一応tracを入れてみることにした

殆ど「CORESERVER に trac を入れてみた - 記憶は削除の方向で」の内容と同じだけど、少しだけ違うところがあるのでメモ。

手順は以下の通りになります。

  1. 下準備
  2. Subversion Python バインディングのインストール
  3. clearsilverのインストール
  4. なんか便利な奴のインストール
  5. tracのインストール
  6. tracを動作させるための設定
  7. tracプラグインのインストール

1.下準備

virtual-pythonとeasy_installが便利ということなのでインストールします。

また、easy_installでpysqliteも入れておきます。


(1) virtual-pythonのインストール

$ wget http://peak.telecommunity.com/dist/virtual-python.py
$ python virtual-python


(2) .bashrcの作成

ここでは、「.bashrc」っていう名前で設定ファイルをホームディレクトリに作ります。


$ touch ~/.bashrc
$ echo 'export PYTHONPATH=~/lib/python2.4/site-packages' > ~/.bashrc
$ echo 'export PATH=~/bin:$PATH' > ~/.bashrc


(3) easy_installのインストール

$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ python ez_setup.py


しかし、なぜかこのままだとeasy_installとかが上手く動かなかった。

何でかな・・と思ってたら、なんかありました。

[Distutils] Bug in setuptools/command/sdist.py: global name 'log' is not defined

ということで、


/virtual/【ドメイン】/lib/python2.4/site-packages/setuptools-0.6c6-py2.4.egg/setuptools/command/

の中にあるsdist.pyを編集します。

89行目あたりに、if data.startswith('8'):っていうのがあるはずなので、


if data.startswith('8') or data.startswith('9'):

に書き換えておしまいです。

これで、ようやく pysqliteをeasy_installでインストールできるようになります。


(4) pysqliteのインストール

$ easy_install pysqlite

easy_installって便利だ。


2.Subversion Python バインディングのインストール

CORESERVERには一応Subversion入ってるけど、古いから1.5をインストールします。

(1) swigのインストール

何のためか知らんけど一応入れます。


$ mkdir ~/tmp
$ cd ~/tmp
$ wget http://jaist.dl.sourceforge.net/sourceforge/swig/swig-1.3.36.tar.gz
$ tar xzvf swig-1.3.36.tar.gz
$ cd SWIG-1.3.36
$ ./configure --prefix=$HOME
$ make
$ make install


(2) Subversion Python バインディングのインストール

$ cd ~/tmp
$ wget http://subversion.tigris.org/downloads/subversion-1.5.5.tar.gz
$ wget http://subversion.tigris.org/downloads/subversion-deps-1.5.5.tar.gz

$ tar xzvf subversion-1.5.5.tar.gz
$ tar xzvf subversion-deps-1.5.5.tar.gz

$ cd subversion-1.5.5/apr
$ ./configure --prefix=$HOME
$ make
$ make install

$ cd ../apr-util
$ ./configure --prefix=$HOME --with-apr=$HOME/bin/apr-config
$ make
$ make install

$ cd ../
$ ./configure --prefix=$HOME --with-apr=$HOME/bin/apr-config --with-apu-config=$HOME/bin/apu-config
$ make
$ make install

$ make swig-py
$ make install install-swig-py


(3) PYTHONPATHのリンク

Python が見つけられるように、PYTHONPATHにリンクしておきます。(シンボリックリンクだっけ?)


$ ln -s $HOME/lib/svn-python/* $PYTHONPATH


3.clearsilverのインストール

easy_installでインストールやろうと思ってたけど、バージョンが0.10xでなんか駄目らしい。なんでだろ。

ということで、手動で0.9をインストールすることに。


$ cd ~/tmp
$ wget http://www.clearsilver.net/downloads/clearsilver-0.9.14.tar.gz
$ tar xzvf clearsilver-0.9.14.tar.gz
$ cd clearsilver-0.9.14
$ ./configure --prefix=$HOME --oldincludedir=$HOME/include --disable-ruby --disable-java --disable-perl --disable-csharp --disable-python --disable-static
$ make
$ make install

$ cd python
$ python setup.py install


4.なんか便利な奴のインストール

(1) docutilsのインストール

tracでRSTっていうのが使えるようになるらしい。・・・ってなんだそれ。


$ easy_install docutils


(2) SilverCityのインストール

リポジトリブラウザで構文強調がされたりするそうです。


$ cd ~/tmp
$ wget http://jaist.dl.sourceforge.net/sourceforge/silvercity/SilverCity-0.9.7.tar.gz
$ tar xzvf SilverCity-0.9.7.tar.gz
$ cd SilverCity-0.9.7
$ python setup.py install


5.tracのインストール

やっとtrac本体のインストールです。俺は何となく本家版(英語)をインストールしました。


$ cd ~/tmp
$ wget http://ftp.edgewall.com/pub/trac/Trac-0.11.2.1.tar.gz
$ tar xzvf Trac-0.11.2.1.tar.gz
$ cd Trac-0.11.2.1
$ python setup.py install


6.tracを動作させるための設定

(1) Subversionのリポジトリを作成

$ mkdir -p ~/var/svn
$ svnadmin create --fs-type=fsfs ~/var/svn/repo

$ cd ~/tmp
$ mkdir proj
$ cd proj
$ mkdir trunk branches tags
$ cd ../
$ svn import proj file:///virtual/【アカウント】/var/svn/repo -m "Import First"
$ rm -r proj


(2) Trac Environmentの作成

$ mkdir -p ~/var/trac
$ trac-admin ~/var/trac/repo initenv

このとき、何か設定しろと言ってくるので、設定する。

殆どリターンキーでOKだけど、リポジトリフォルダは必ず設定すること。(Path to repositoryってところ)

ちなみに、 /virtual/【アカウント】/var/svn/repo ってなかんじで設定します。


(3) trac.cgiの準備

まず、trac.cgiを~/public.htmlにコピーします。


$ cp ~/share/trac/cgi-bin/trac.cgi ~/public_html

サブドメインとかにしたかったら、以下のように。


$ cp ~/share/trac/cgi-bin/trac.cgi ~/public_html/【サブドメイン】


次に、コピーしたtrac.cgiを編集します。

TRAC_ENVの設定は必須だけど、SCRIPT_NAMEは任意。

但し、指定しないとhttp://example.com/trac.cgi/みたいな感じになってちょっと嫌。


# 1行目
#!/virtual/【アカウント】/bin/python

# 18行目以降に追記する。
try:
    import os
    os.environ['SCRIPT_NAME'] = "/trac/" # 任意
    os.environ['TRAC_ENV'] = "/virtual/【アカウント】/var/trac/repo"


そして、trac.cgiを設置したディレクトリより一つ上の階層に以下の内容で「.htaccess」を作成します。(SCRIPT_NAME設定した人だけ)


RewriteEngine On
RewriteRule ^$ /trac/ [R=301,L]
RewriteRule ^trac(\/.*)$ /trac.cgi$1 [L]


(4) 静的ファイルを直接リンクさせる

静的ファイルをcgi経由で配信しないようにします。

これは別にやらなくても良いです。


$ ln -s ~/share/trac/htdocs/ ~/public_html/【trac.cgiがあるディレクトリ】/htdocs/


そして、~/var/trac/repo/conf/trac.ini(以降trac.ini)に以下の行を追記します。


[trac]
htdocs_location = /htdocs/


7.tracプラグインのインストール

(1) WebAdmin

これはeasy_installでインストールします。


$ easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin/


(2) AccountManager

同様にeasy_installで。


$ easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk


そして、アカウントを作成するために、以下の内容をtrac.iniに追記します。


[account-manager]
password_file = /virtual/【アカウント】/var/trac/repo/conf/.htpasswd
password_format = htpasswd
password_store = HtPasswdStore

[components]
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
acct_mgr.htfile.htpasswdstore = enabled

アカウントを作成したら、勝手にユーザーを作られないように以下の内容を追記します。


[components]
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.web_ui.registrationmodule = disabled

色々できるように、作成したユーザーに管理者権限を与えます。


$ trac-admin ~/var/trac/repo permission add 【作成したユーザー名】 TRAC_ADMIN


(3) SpamFilter

既にプリインストールされてるので、とりあえずtrac.iniから編集します。


[spam-filter]
akismet_api_key = 【API Key】
akismet_api_url = rest.akismet.com/1.1/
  ・
  ・

というようなところがあると思うので、【API Key】に、API Keyを入力します。

なお、API Keyは、WordPress.comにユーザー登録を行うと、登録完了メールの下部に記載されています。


upgradeが必要なのでしておきます。


$ trac-admin ~/var/trac/repo upgrade


(4) trac-post-commit-hook

なんかよく知らんけど、一応入れとく。


$ cp ~/tmp/Trac-0.11.2.1/contrib/trac-post-commit-hook ~/var/svn/repo/hooks


そして、新たに「post-commit」<という名前で以下の内容で同ディレクトリに作成します。拡張子は無しで。


#!/bin/sh
REPOS="$1"
REV="$2"

export LANG=ja_JP.UTF-8
LOG=`svnlook log -r $REV $REPOS`
AUTHOR=`svnlook author -r $REV $REPOS`

python ${REPOS}/hooks/trac-post-commit-hook \
 -p "/virtual/【アカウント】/var/trac/repo" \
 -r "$REV"    \
 -u "$AUTHOR" \
 -m "$LOG"


はい、これでとりあえず全行程終了です!おつかれさん。

IE7とIE6とその他バージョンのIEを共存させる方法

あけましておめでとうございます。今年もよろしくお願いします。

さて、本題。

IE6とIE7ってレイアウトが違うところが結構あったり、なかったり。

しかもIE5.5も、意外と変なところがおかしかったりします。

だから、サイトつくる人にとっては、両方で確認してぇと思うのでは。


ということで、なんか良い方法はないかと探してみました。

調べてみると、色々なところで共存させる方法が書かれてありますけど、なんか、どれもこれもしっくりこない。

・・と思ってたら、あった。

inoccoさんが「IE7 環境で IE6 など他のバージョンの IE を使う方法 | Numb.」でまとめられてました。

IE7の環境で、IE6をスタンドアローンとして動かす方法です。


ていうか、「evolt.org - Browser Archive」ていうサイト凄い。

全然知らんブラウザまであるよ。


はい、以上。