と言う事で、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 の開発は、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
[??@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
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
[中略]
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 件のコメント:
コメントを投稿