RE;COIL (リコイル)メンバーのarc@dmzによる日記
このブログをはじめ、digitalmuseum.jpのサイト全体はSAKURA Internetでレンタルしたサーバで運営している。さくらのサーバは、sshでリモートログインして、ユーザ領域にいろいろなアプリケーションを追加インストールできることで有名だ。(スタンダードプラン以上が対象。)
つい先日の引っ越しに際して自宅サーバの環境を全部消したので、それまで運用していたTracをさくらのサーバに移してみることにした。
Tracの0.10.xから0.11.xへのバージョンアップでテンプレートエンジンが差し替わっているので、それまでの設定を簡単に移行したくて0.10.xをインストールした。いろいろあって、一日がかりの作業になってしまった。ここに書くのは「いろいろ」を省いた、(おそらく)実働までの最短ルート。
さくらに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を探すようにする。これがないと依存関係のあるコンパイルでコケたり、プログラムの実行ができないこともある。
まず、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に通しているので、その作業も不要。
最近の版では、./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 ../
さくらの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 ../
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倉庫に従った。
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のインストール。
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
ここまで周到に準備してきているので、インストール自体はあっけないほど単純。
ただ、実働させるまでにはまだ壁がある。以降、近日中に続きを書く予定。
もうLeopardが出てしばらく経つのにTigerを再インストールしたわけだが、恐らく定番のアプリなど変わりないところも多いと思うので、誰かの参考になることを願いつつ(いつか自分がまたこういうことをするときのためにも)記録を残しておく。
比較的誰でも使いやすいと思しきものは次のとおり。
自宅サーバとしてMacを使う場合、こういうものがあると便利。
サーバのためのアプリケーションはmacportsで一通り揃う。
以下、macports経由でインストールしたもの。
# ./configureとしてOKだった。
> --with-apxs=/opt/local/apache2/bin/apxs
> --with-python=/opt/local/bin/python2.5
# ./setup.py build -c /opt/local/bin/python2.5
# ./setup.py install --prefix /opt/local/ --install-lib /opt/local/lib/python2.5/site-packages
その他のサーバ用アプリ。
全てのファイルをFinderに表示する。
$ defaults write com.apple.finder AppleShowAllFiles TRUE
export PATH=/opt/local/bin:$PATH
export LANG=ja_JP.UTF-8
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
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件表示
© arc@dmz 2007