LinuxでTrac 0.11 devを動かす環境を作ってみる。
最初からいきなり難易度高い。
会社の業務でTrac月を使ってるんですが、連日Subversionに対して大量のコミットとアップデートをしてる(グラフィック素材もSVN管理にしちゃったせいで、一日数百MB単位でアップデートが発生してる)のが原因なのかなんなのかわかりませんが、Windows版Apacheが大量のメモリリークを起こしている模様。PCのメモリを2GBまで増やしているのに、スワップしまくりでHDDの寿命が恐くなってきたのと、Trac月まかせでどういう設定になっているのかまったくちっとも理解してないために手の出しようがないのもアレなんで、仕事の合間を見ていちからTracサーバを構築してみることにした。
Windowsで構築してもよかったんだけど、近い将来に社内SEの手を借りて、LinuxでTracサーバを再構築する目処が立ったのと、別のプロジェクトでもTracを使用することになりそうなので、前のマニュアル作りという意味もある。
Tracを0.11devにするのは、0.10系のWorkflowのステータスが足りなくて困ってたところ、0.11だと改善されてWorkflowのステータスがカスタマイズできるようになってるらしいことを知ったため。ついでにいま使っている各種プラグインが0.11で動作するかどうかの人柱も兼ねてます。
CentOS 5 を VMwarePlayerで動かす。
とりあえず、Linux環境を用意せねば。
いま使えるのはWindowsXP SP2のノートPC一台きりなので、VMwarePlayerでCentOSを動かすことにする。CentOS選んだのは、後で手伝ってもらえるかもしれない社内SEがCentOSが好きらしいので、困ったときに何か聞けるかもしれないという甘えた気持ちから。とはいえ当分はひとりでがんばるつもり。
ちなみにLinuxにたいして知ってること。
えーとね、スーパーユーザーっちゅーのがあるんでしょ?
su。
ls。
おわり。
こんな有様なので、まずはgoogle先生にいろいろ聞いてみた。
http://mkosaki.blog46.fc2.com/blog-entry-32.html
http://d.hatena.ne.jp/dufresne/20060507
ありがとうございます。皆様がいろいろ情報を公開してくれているおかげで、素人でもVMwareでCentOSをインストールできました。
ちなみに、.vmxファイルだけは、上記ページの設定だとなぜかうまく動かず、VMBuilderで作ったファイルもうまく動かなかったので、下記ページの.vmxファイルの設定をまんまコピーしたところうまく動作しました。
http://blog.livedoor.jp/hakin/archives/50168211.html
CentOS 5にyumでapacheをinstall。
えーと、RedHat系Linuxには、yumとかいうものがあって、インストールも恐くないらしい、ぐらいの知識はある。えらいひとはyumと使わないで自分でmakeしてインストールしちゃうらしい、とかいう知識はある。そんだけしか知らないのかという話もありますが。
自分でmakeするのはいきなり敷居が高いので、yumを探す。
コマンドラインからやれという話もありますが、LinuxのGUIが物珍しくて、いろいろといじってたら、「ソフトウェアの追加/削除」というメニューを見つける。どうもこれっぽいとクリックすると、パッケージマネージャってのが立ち上がる。んで、一覧からhttpdとかmod_pythonとか、WebDAVとか、必要そうなものをごにょごにょいじってたら、どうもインストールされたっぽい。いいのか、こんなに簡単で。
んで、apacheがインストールされたっぽいので、ローカルから起動を確認しようかと思ったら、起動の仕方がもうわかんない。google様に聞いても、makeしてインストールするえらいひとの記事が多くて、yumでインストールした場合とディレクトリ構成が違うっぽく、エラーになる。いろいろと探して、以下のページを見つける。
http://www.thinkit.co.jp/cert/article/0706/3/2/4.htm
ディレクトリ構成がわかったので、アプリケーション→アクセサリ→GGNOME端末で、コマンドを入力する。
# su -
ってやってパスワード入力してスーパーユーザーになって、
# /sbin/service httpd start
で起動。Firefoxで、ローカルページを見ると、めでたくトップページが表示された。簡単に書いたけど、ここまで二時間ぐらいかかってる。トホホ。
apacheにmod_pythonをインストール。
前述のページで、yumでインストールされたapacheのディレクトリ構成がわかったので、「/etc/httpd/modules」を確認してみると「mod_python.so」を発見。ちゃんとインストールできてるっぽい。
「/etc/httpd/conf/」の「httpd.conf」を開いて、「LoadModule」セクションに以下の一行を追加して保存。GNOMEテキスト・エディタ、geditを使う。
LoadModule pyhton_module modules/mod_python.so
httpd.confを保存しようと思ったら、いまのユーザ権限では書き込み禁止で上書き保存できないっぽい。面倒臭いのでrootでログインし直して上書き保存。ていうか、こういう使いかたって間違ってる気がしてならない。そのうちLinux入門系の本でも買ってこよう。
mod_pythonのマニュアル参考に動作確認。
http://www.python.jp/doc/contrib/modpython/inst-testing.html
document root(yumのデフォルトだと/var/www/html)に.htaccessファイルを作って以下の記述しておく。
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
/var/www/htmlにmptest.pyというファイルを作って以下の内容を記述。
from mod_python import apache
def handler(req):
req.write("Hello World!")
return apache.OK
んで、apacheをリスタート。
# httpd -k restart
[warn] module python_module is already loaded, skipping
あれ? 既にpython_moduleロードされてるって出てくるよ!? 意味がわからないが、ロードされてるならいいや、と次に進む。
ブラウザから「http://localhost/mptest.py」と入力。
You don't have permission to access /mptest.py on this server.
あー、パーミッションがないと怒られてしまいました。おまけに、他の設定試してみようと、.htaccessファイル削除しようと思ったら削除できなくなってるし。うーん、どうしたものか。