家サーバ

やっと家サーバを立てる環境ができた。セットアップのメモ。

Debian

  • 4.0r1のネットインストールCDを焼いて、そこからインストール。

接続

  • DynDNSでドメイン取得。無料。
  • DynDNSで提供していた ddclient で ddns の更新を設定。
    • apt-get install libio-socket-ssl-perl が必要だった
  • ルータでHTTPとSSHを開ける。
    • SSHは22でなく適当なポートにした
      • 中は22番で外は別ポートにできればいいのに
    • apt-get install sshd が必要だった
    • /etc/ssh/sshd_config でポートを変更
  • 公開鍵を設定した。
    • puttyで作った鍵の username.pub を ~/.ssh/authorized_keys に追加
      • username_id.pub ではない
    • chmod 400 authorized_keys

tracインストール

  • trac用ユーザ作成
  • python2.5.1 を make install
    • $HOME/Python2.5.1
    • 事前に、apt-get install zlib1g-dev
    • 事前に、apt-get install libreadline-dev
      • これがないと、行エディット(TABとかカーソルキーとか)が効かない
    • ~/.bash_profile に、PATH=~/Python2.5.1/bin:$PATH を追加
  • subversion1.4.5 を make install
  • の前に、ずいぶんいろいろと必要だった
    • aptで入れても良かった?
      • swig-py が入らないっぽかった
    • apt-get install apache2-dev
    • apr-1.2.11 を make install
    • apr-util-1.2.10 を make install
    • sqlite-3.5.1 を make install
    • easy_install pysqlite
    • swig-1.3.31 を make install
      • これは apt-get install swig でも良かったみたい
    • export CFLAGS="-I~/Python2.5.1/Inlcude'
    • ./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-apxs=/usr/bin/apxs2
    • make; make install; make swig-py: make install-swig-py
    • mod_python を make install
      • $HOME/Python2.5.1 を使うように注意
    • mod_wsgi を make install
    • /etc/apache2/mod-available/mod_wsgi.load
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
import os

os.environ['TRAC_ENV'] = '/var/trac/test'
os.environ['PYTHON_EGG_CACHE'] = '/var/trac/test/eggs'

import trac.web.main
application = trac.web.main.dispatch_request
      • /etc/apache2/apache2.conf
# add for mod_wsgi
WSGIScriptAlias /trac/test /var/trac/test/apache/test.wsgi

<Directory /var/trac/test/apache>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>
      • あと権限をゴニョゴニョ
      • Tracからsvnが制御できないという悲しいお知らせが。。。今日は力尽きたのでまたこんど。
      • PYTHONPATHが足らなかった。/etc/init.d/apache2 を編集(既存行の最後に追加)
ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin  PYTHONPATH=/usr/local/lib/svn-python/"