#freeze
''目次''
#contents
~
----
*目的 [#h259d1e8]
[[mod_python>http://ja.wikipedia.org/wiki/Mod_python]]~
PythonをApacheに結合するためのモジュール
*準備 [#kb633b2f]
[[Apache HTTP Server Project>http://httpd.apache.org/]]~
[[modpython.org>http://www.modpython.org/]]
*インストール [#h80cabef]
+ソースの取得
# wget -P /usr/local/src http://ftp.riken.jp/net/apache/httpd/modpython/mod_python-3.3.1.tgz
~
+ソースの解凍
# cd /usr/local/src
# tar zxvf mod_python-3.3.1.tgz
~
+ソースの修正
なにやら下記のようなエラーが出るのでソースを修正
connobject.c: In function '_conn_read':
connobject.c:142: error: request for member 'next' in something not a structure or union
apxs:Error: Command failed with rc=65536
.
make[1]: *** [mod_python.so] エラー 1
make[1]: ディレクトリ `/usr/local/src/mod_python-3.3.1/src' から出ます
make: *** [do_dso] エラー 2
~
修正は下記の通り
# vi /usr/local/src/mod_python-3.3.1/src/connobject.c
140行目あたり
while ((bytes_read < len || len == 0) &&
- !(b == APR_BRIGADE_SENTINEL(b) ||
+ !(b == APR_BRIGADE_SENTINEL(bb) ||
APR_BUCKET_IS_EOS(b) || APR_BUCKET_IS_FLUSH(b))) {
(b)を(bb)にするだけ~
~
+コンパイル設定~
[[configureのヘルプ>mod_python-3.3.1のconfigureヘルプ]]
# cd /usr/local/src/mod_python-3.3.1
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
~
+インストール
# make
# make install
*Apacheへのモジュール追加 [#uc0c541f]
# vi /usr/local/apache2/conf/httpd.conf
〜(略)〜
LoadModule python_module modules/mod_python.so ← 1行追記
~
*mod_pythonのテスト [#m0411f46]
インストール結果を見る為のテスト用。テスト後には消す。
# vi /usr/local/apache2/conf/httpd.conf
下記を追加。
<Location /mpinfo>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler mod_python.testhandler
</Location>