2007年4月1日日曜日

mod_python.

 先ほど書いたように、Tracをインストールする事前準備として、Apacheのモジュールに「mod_python」が必要との事でしたが、lightmaterialはApacheをソースから入れている為か標準ではmod_pythonが入っていませんでした.
 と言う事で、mod_pythonをインストール.

 mod_pythonは名前の通りPythonをApache上で動作させる為のモジュールです.
 また、詳しくは調べていませんが、最近のバージョンからDSO(Dynamic Shared Objects)のみ対応してるらしいので、Apacheのコンパイル時には「--enable-so」か「--enable-shared」オプションを付ける必要がありそうです(先日書きましたが、「--enable-shared」はconfigureヘルプには出てきませんが、知人の話によると、どうやらApacheではconfigureヘルプには出ないオプションが複数あるようで、「--enable-shared」もその一つらしい).
 じゃぁ、Pythonって何さ?と言うと、lightmaterialの薄い知識ではインタープリターなプログラム言語と言う程度しか知りません(Python自体を動かすのにApacheもmod_pythonも必要ありません).
 この機会に、「Pythonって何さ?」と言う事も調べてみようかと思いました(詳しくは後述).

 取り敢えず、最終目的のTracをインストールするためには、兎にも角にもこのmod_pythonをインストールしなければいけませんので、まず本家からmod_pythonをダウンロードします.

 mod_python

 次にインストールですが、この工程には「日本Pythonユーザー会」のページが役立つでしょう.

 日本Pythonユーザー会

 ついでにプログラム言語「Python」についても、少々知識を仕入れました.

[日本Pythonユーザー会から抜粋]
Python の開発は、1990 年ごろから開始されています。開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBC 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。

 ふーん.
 なるほどなるほど.
 このサイトの説明によれば、オブジェクト指向かつ学習が容易で、その開発範囲はゲームからインストーラ(インストーラの一部にPythonが使われているのは知っていました)、はたまたサーバーアプリケーションまで様々な分野に及ぶそうです.
 もっと早く知っていれば(と言うか、調べようとしなかった私が悪い orz)、lightmaterialが使える言語リストに、この「Python」が入っていたかもしれません.
 今はJavaを覚えようと模索中なので、これからいきなり「Python覚えます!」とはいきませんけど.

 とにかく、そんなPythonをApache上(要するにWebアプリケーションとして)で動作させるのがmod_pythonな訳ですね.
 なんとなくPythonの概要が見えてきました.

 そこまで確認した所で、今回の目的であるmod_pythonについて、「mod_pythonマニュアル」が親切にも日本語化されて置いてある事を知りましたので、このマニュアルに従ってインストールしてみる事に.

 mod_pythonマニュアル

ファイル展開.


 本家サイトからダウンロードしたファイルを展開します.

[??@fedora]# tar xvzf mod_python-3.3.1.tgz
[??@fedora]# cd mod_python-3.3.1

 いつもどおり展開して、展開後のディレクトリに入りました.
 今回はマニュアルもあるし、すんなりいきそうです.


configure.


 Apacheをソースから入れている都合上、一応Apache(apxs)パスの指定オプションを付けてconfigureしてみました.

[??@fedora]# ./configure --with-apxs=/usr/local/apache2/bin/apxs

 Apacheをデフォルトのprefixで入れている場合は、指定しなくても行けるかもしれません(?)
 何事も無く終了…あっけない.


make.


 これまたいつも通り、make/make installします.
 普通です.
 すごい普通ですw

[??@fedora]# make; make install

 エラーも出ず、正常にインストール完了.
 後はApacheのconfファイルに、mod_pythonの設定を追記しないといけません.


Apacheの設定.


 confファイルに次の通り追記します.
[??@fedora]# vi /usr/local/apache2/conf/httpd.conf

LoadModule python_module /usr/local/apache2/modules/mod_python.so

 lightmaterialは、分かり易いようにphp_moduleやdav_svn_moduleの下に追記しておきました.
 ここまでは、いつになくスムーズにインストールが出来たのですが、ここからが良く分かりません orz

 マニュアルによると、.htaccessなりhttpd.conf(対象ディレクトリの設定<Directory>項目)にAddHandlerと「PythonHandler」を追記する必要があるとの事ですが…「PythonHandler」って何?w
 AddHandlerはcgiを使う際に記述するのと同様に、Pythonのソースファイルである「.py」について記述します.

 AddHandler mod_python .py

 そして意味の分からない以下の記述を追記.

 PythonHandler mptest
 PythonDebug On

 この記述はマニュアルの通りな訳ですが、例えば

 /var/www/html

 にドキュメントルートを指定している状態で

 <Directory>
 </Directory>

 項目内に「PythonHandler」を記述し、

 /var/www/html/python/mptest.py
 ※中身はマニュアルに書かれた「Hello World」

 としてソースファイルを作っても上手く動きません.
 こんなエラーが帰ってきます.

MOD_PYTHON ERROR
[中略]
Phase: 'PythonHandler'
Handler: 'mptest'
[中略]
ImportError: No module named mptest


 …は?
 何?何?
 意味が分かりませんが…ソースとして設置したファイルをmoduleとして読みかえると意味が分からなくもない.
 例に

 /var/www/html/mptest.py

 とパスを変更して保存してみると、何事もなかったかのように「Hello World!」と表示されやがります.
 全っ然意味が分かりませんw
 まさか全部のコードに対してPythonHandlerを指定しなければいけない訳でもないだろうし…

 この辺の設定、もう少し勉強が必要な様ですが、元々の目的がTracのインストールなだけに、気にせずTracのインストールに行くべきなのか、mod_pythonの設定についてもう少し勉強すべきなのか迷い所ではあります.

 こんな調子で、本当にTracを動かす事が出来るのやら…不安です orz

0 件のコメント: