replus

RE;COIL (リコイル)メンバーのarc@dmzによる日記

さくらのサーバでTrac0.10.5

このブログをはじめ、digitalmuseum.jpのサイト全体はSAKURA Internetでレンタルしたサーバで運営している。さくらのサーバは、sshでリモートログインして、ユーザ領域にいろいろなアプリケーションを追加インストールできることで有名だ。(スタンダードプラン以上が対象。)

つい先日の引っ越しに際して自宅サーバの環境を全部消したので、それまで運用していたTracをさくらのサーバに移してみることにした。

Tracの0.10.xから0.11.xへのバージョンアップでテンプレートエンジンが差し替わっているので、それまでの設定を簡単に移行したくて0.10.xをインストールした。いろいろあって、一日がかりの作業になってしまった。ここに書くのは「いろいろ」を省いた、(おそらく)実働までの最短ルート。

主に参考にしたWebサイト

1. 環境整備

さくらにsshでログインして、まず必要なディレクトリを作る。~/localをベースに作業を進めることにする。

mkdir -p $HOME/local/src
cd $HOME/local/src
mkdir -p $HOME/local/lib/python2.4/site-packages
ln -s ~/local/lib/python2.4 ~/local/lib/python

~/local/src はインストールに使うファイル置き場。~/local/lib/python はPythonのパッケージ置き場で、Trac本体と、Tracが使うモジュールを置く。

続いて、環境変数を整備する。次の内容をコマンドで打ってもいいが、途中で接続が切れて打ち直すはめにならないよう、.cshrc(デフォルトシェル用)か.profile(bash用)に書いておくのがお薦め。.profileなら、setenvでなくexport 環境変数=内容というふうになる。

setenv PYTHONPATH $HOME/local/lib/python:$HOME/local/lib/python/site-packages:$HOME/local/lib/svn-python
setenv PATH $HOME/local/bin:$PATH
setenv LOCALBASE $HOME/local
setenv LD_LIBRARY_PATH $HOME/local/lib

PYTHONPATHは(さくらに初めから入っている)Pythonのライブラリを探すパスで、svn-pythonはまだないが、後で作るディレクトリなのでどうせならここで足してしまおう。

PATHは~/local/binにも通るようにする。LOCALBASEは後々pysqliteのインストールで必要な模様。

LD_LIBRARY_PATHはリンクすべきライブラリを探すパスで、優先的に~/local/libを探すようにする。これがないと依存関係のあるコンパイルでコケたり、プログラムの実行ができないこともある。

2. インストール

Subversion

まず、Subversionをインストールするためにapr、apr-utilをインストールする。さらに、SubversionのインストールでPython-bindingオプションを付けるためにSWIGをインストールする。

cd $HOME/local/src
wget 最新のaprアーカイブ(apr-1.3.3.tar.gz)
tar -zxvf apr-1.3.3.tar.gz
cd apr-1.3.3
./configure --prefix=$HOME/local
make
make install
cd ../

wget 最新のapr-utilアーカイブ(apr-util-1.3.4.tar.gz)
tar -zxvf apr-util-1.3.4.tar.gz
cd apr-util-1.3.4
./configure --prefix=$HOME/local --with-apr=$HOME/local
make
make instal
cd ../

wget 最新のSWIGアーカイブ(swig-1.3.36.tar.gz)
tar -zxvf swig-1.3.36.tar.gz
cd swig-1.3.36
./configure --prefix=$HOME/local
make
make install
cd ../

Subversionをインストールする。

wget 最新のSubversionソースアーカイブ(subversion-1.5.4.tar.gz)
tar -zxvf subversion-1.5.4.tar.gz
cd subversion-1.5.4
./configure --prefix=$HOME/local --with-neon=$HOME/local --with-apr=$HOME/local --with-apr-util=$HOME/local --with-swig=$HOME/local/bin/swig --without-berkeley-db --disable-static
make
make install
make swig-py
make install-swig-py
cd ../

HirobeのHack倉庫に記述のあった--enable-swig-bindings=pythonは使えなかった。たぶん今の版では要らないのだろう。同解説ページではlnでシンボリックリンクを張ってsvnその他をPythonのパスに通していたが、当記事ではY's Diaryに従ってPython自体のライブラリパスを~/local/lib/pythonに通しているので、その作業も不要。

sqlite3

最近の版では、./configureに--enable-load-extensionをつけないと、次にインストールするpysqlite2が動かない。とあるメーリングリストの投稿から。

wget 最新のsqliteソースアーカイブ(sqlite-3.6.4.tar.gz)
tar -zxvf sqlite-3.6.4.tar.gz
cd sqlite-3.6.4
./configure --prefix=$HOME/local --enable-load-extension --disable-dynamic
make
make install
cd ../

pysqlite2

さくらのPythonは2.4.xなので、2.5以降で標準サポートされたsqliteを扱うためにはライブラリを追加インストールしないといけない。

cd $HOME/local/src
wget 最新のpysqlite2ソースアーカイブ(sqlite-2.5.0a.tar.gz)
tar -zxvf pysqlite-2.5.0a.tar.gz
cd pysqlite-2.5.0
python setup.py build
python setup.py install --prefix=$HOME/local
cd ../

ClearSilver

Tracで使われているテンプレートエンジン。

wget 最新のClearSilverアーカイブ(clearsilver-0.10.5.tar.gz)
tar -zxvf clearsilver-0.10.5.tar.gz
cd clearsilver-0.10.5
./configure --prefix=$HOME/local --oldincludedir=$HOME/local/include --disable-ruby --disable-java --disable-perl --disable-csharp --disable-python --disable-static
gmake
gmake install
cd python
python setup.py build
python setup.py install --prefix=$HOME/local
cd ../../

--disable-pythonしてあとから改めてPythonビルドしているのは、Makefileの中で--prefix指定が保持されないからかな?とりあえずHirobeのHack倉庫に従った。

Docutils

Tracで使われているWikiエンジン?

wget 最新のDocutilsアーカイブ(docutils-0,5.tgz)
tar -zxvf docutils-0.5.tgz
cd docutils-0.5
python setup.py install --home=$HOME/local
cd ../

Trac

お待ちかね、Tracのインストール。

wget 最新の日本語版アーカイブ(trac-0.10.5-ja-1.zip)
unzip trac-0.10.5-ja-1.zip
cd trac-0.10.5-ja-1
python ./setup.py install --prefix=$HOME/local
cp $HOME/local/share/trac/cgi-bin/trac.cgi $HOME/www/trac_.cgi

ここまで周到に準備してきているので、インストール自体はあっけないほど単純。

ただ、実働させるまでにはまだ壁がある。以降、近日中に続きを書く予定。

Mac OSX(Tiger) 再インストールの記録

もうLeopardが出てしばらく経つのにTigerを再インストールしたわけだが、恐らく定番のアプリなど変わりないところも多いと思うので、誰かの参考になることを願いつつ(いつか自分がまたこういうことをするときのためにも)記録を残しておく。

インストールしたアプリケーション

一般向け

比較的誰でも使いやすいと思しきものは次のとおり。

自宅警備員向け

自宅サーバとしてMacを使う場合、こういうものがあると便利。

サーバのためのアプリケーションはmacportsで一通り揃う。

 以下、macports経由でインストールしたもの。

 その他のサーバ用アプリ。

設定したこと

全てのファイルをFinderに表示する。

$ defaults write com.apple.finder AppleShowAllFiles TRUE

~/.bashrc

export PATH=/opt/local/bin:$PATH
export LANG=ja_JP.UTF-8

~/.bash_profile

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

/Library/StartupItems/Firewall/Firewall

OS X標準のファイアウォールでは生温いという人のために。

僕の環境ではen0, en1, fw0(Firewire)でメインのWindows機とMac miniが接続されているので、ルール1000及び1010(IP通信を全て許可)がある。

cf. http://miko.org/~tatyana/tech/OSX/OSX_Firewall.html

#!/bin/sh

IPFW='/sbin/ipfw -q'

$IPFW -f flush
$IPFW add 10 divert 8668 ip from any to any via ppp0

# LANとループバックの通信はすべて許可
$IPFW add 1000 allow ip from any to any via en*
$IPFW add 1010 allow ip from any to any via fw0
$IPFW add 2000 allow ip from any to any via lo*

# 危ないIPからの通信は拒絶
$IPFW add 2010 deny ip from 127.0.0.0/8 to any in
$IPFW add 2020 deny ip from any to 127.0.0.0/8 in
$IPFW add 2030 deny ip from 224.0.0.0/3 to any in
$IPFW add 2040 deny tcp from any to 224.0.0.0/3 in

# 外への通信、コネクション確立済みの通信、フラグメントパケットは許可
$IPFW add 2050 allow tcp from any to any out
$IPFW add 2060 allow tcp from any to any established
$IPFW add 2070 allow tcp from any to any frag

# SSH, IMAP, HTTP, PeerCast
$IPFW add 2080 allow tcp from any to any dst-port 22 in
$IPFW add 2090 allow tcp from any to any dst-port 143 in
$IPFW add 2100 allow tcp from any to any dst-port 80 in
$IPFW add 2110 allow tcp from any to any dst-port 7144 in

# Microsoft Messenger
$IPFW add 2120 allow tcp from any to any dst-port 6891-6900 in

# 残りのTCP, ICMP通信をすべて拒絶して記録
$IPFW add 12190 deny log tcp from any to any
$IPFW add 20000 deny log icmp from any to me in icmptypes 8

タグ「サーバ」を含む記事を全2件中1件目から計2件表示