Amazon EC2で動いているCentOSにsvnとtracを入れる4

| | コメント(0) | トラックバック(1)

Amazon EC2で動いているCentOSにsvnとtracを入れる3(補足)の続き。


さて、こんどはapacheとtracの連携をしてみる。長旅になったなあ。


 
apacheの設定
<VirtualHost *:80>
    ServerName trac.example.com
    DocumentRoot "/www/trac/htdocs"
    Options Indexes
    ErrorLog "/data/logs/apache/trac_error_log"
    CustomLog "/data/logs/apache/trac_access_log" common
    <Location /sample>
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnvParentDir /data/trac
#        PythonOption TracUriRoot /trac
    </Location>
</VirtualHost>
<Directory /www/trac/htdocs>
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
#    Deny from all
</Directory>

trac専用にサブドメインをきったのでこういう風になっている。
・・・とこれを書いている時点でmod_pythonってあったっけ。って気づいてapache再起動で案の定エラーがでた。
ということでmod_pythonを入れる。

#mod_pythonのインストール
[root:/usr/local/src] wget http://ftp.riken.jp/net/apache/httpd/modpython/mod_python-3.3.1.tgz
[root:/usr/local/src] cd mod_python-3.3.1
[root:/usr/local/src/mod_python-3.3.1] ./configure --with-apxs=/usr/local/apache2/bin/apxs
[root:/usr/local/src/mod_python-3.3.1] make
[root:/usr/local/src/mod_python-3.3.1] make install
[root:/] vi /usr/local/apache2/conf/httpd.conf
LoadModule python_module      modules/mod_python.so ←足す

[root:/]service httpd restart

OK!


さて、これでブラウザからアクセスしてみると・・・真っ白。画面真っ白。
で、サブドメインのログを見てもなにもでてない。なんとなく大元(/usr/local/apache2/logs)のログを見てみたら
httpd: Objects/stringobject.c:105: PyString_FromString: Assertion `str != ((void *)0)' failed.
[Tue Dec 16 21:52:58 2008] [notice] child pid 6438 exit signal Aborted (6)
というエラーがでていた。

調べてみるとapacheのXMLパーサであるところのlibexpatが古いことが原因らしい。


僕の場合、サーバ内にあるlibexpatは全部同じバージョンだったので新しいやつをインストールすることに。

[root:/usr/local/src] wget http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz
[root:/usr/local/src] tar zxvf expat-2.0.1.tar.gz
[root:/usr/local/src] cd  expat-2.0.1
[root:/usr/local/src/expat-2.0.1] ./configure --prefix /usr/local/expat
[root:/usr/local/src/expat-2.0.1] make
[root:/usr/local/src/expat-2.0.1] make install
[root:/usr/local/src/expat-2.0.1] strings /usr/local/expat/lib/libexpat.so | grep expat_
expat_2.0.1
[root:/usr/local/src/expat-2.0.1] strings /usr/local/apache2/lib/libexpat.so | grep expat_
expat_1.95.2

さて、こいつをどうするか。apacheを再コンパイルしてみようと思ったけど、configureのオプションにexpatを指定できるものがなかったので参考にさせてもらったサイトのように上書きすることに。

ところでEC2ってこういう試行錯誤しているときに、すぐに錯誤が入る前の状態に戻せるからいいよね。
いろいろやっていると、再度正解のフローだけ辿ってもどこで前提がくずれちゃってうまくいかないとかあるじゃないですか。
それが、最初からじゃなくて、途中の状態にすぐ戻せるから(ちゃんとイメージとしてバックアップしておかないとダメだけど)楽チンでいいね。

[root:/usr/local/apache2/lib] mkdir backup
[root:/usr/local/apache2/lib] mv libexpat.* backup/
[root:/usr/local/apache2/lib] cp -a /usr/local/expat/lib/libexpat.* .
[root:/usr/local/apache2/lib] ll /usr/local/expat/lib/
total 724
-rw-r--r-- 1 root root 384524 Dec 17 01:00 libexpat.a
-rwxr-xr-x 1 root root    805 Dec 17 01:00 libexpat.la
lrwxrwxrwx 1 root root     17 Dec 17 01:00 libexpat.so -> libexpat.so.1.5.2
lrwxrwxrwx 1 root root     17 Dec 17 01:00 libexpat.so.1 -> libexpat.so.1.5.2
-rwxr-xr-x 1 root root 342017 Dec 17 01:00 libexpat.so.1.5.2
[root:/usr/local/apache2/lib] strings libexpat.so | grep expat_
expat_2.0.1

[root:/usr/local/apache2/lib] service httpd restart

で、ブラウザでアクセス。
http://example.com/sample
・・・で、できた。。。



トラックバック(1)

このブログ記事を参照しているブログ一覧: Amazon EC2で動いているCentOSにsvnとtracを入れる4

このブログ記事に対するトラックバックURL: http://hirop0164.s326.xrea.com/mt/mt-tb.cgi/229

前回の投稿の最後で書いたCentOS4.7でTrac0.11にアップデートしたものの運用上必要な管理系プラグインがpython2.3(CentOS4系の... 続きを読む

コメントする


画像の中に見える文字を入力してください。

ブックマーク

はてなブックマークに追加 Yahoo!ブックマークに登録 del.icio.us に登録 ライブドアクリップに追加 Google Bookmarks に追加

Ajax: 2009年5月: 月別アーカイブ

このブログ記事について

このページは、ぴろしが2008年12月17日 01:17に書いたブログ記事です。

ひとつ前のブログ記事は「Amazon EC2のElastic IPの料金」です。

次のブログ記事は「mod_pythonのインストールでconnobject.c:142: error: request for member `next' in something not a structure or union 」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。