MAMPでmod_pythonが使えるようにする
[]

2009.04.25

このエントリーをはてなブックマークに追加
はてなブックマーク - MAMPでmod_pythonが使えるようにする

ここを参考にしました。

すでにMAMPがインストールされているものとする。

下準備

  1. 「システム環境設定」から「共有」を選び「Web共有」を停止する。(MAMPのApacheを80番ポートで走らせるため)
  2. 独自のMySQLが走っているなら、それも停止する。

MAMPの設定

  1. MAMPを起動して、設定パネルからApacheのポートを80番、MySQLのポートを3306番に変更する。

mod_pythonのインストール

  1. ここか(original)
    ここから(mirror)
    mod_pythonをダウンロード
  2. 落としたファイルを以下のようにして展開する。
    $ tar xzf MAMP-1.7.1_mod_python-3.3.1.tar.gz -C /Applications/MAMP/Library
  3. 次に以下のコマンドのように、ユーザライブラリ下にPythonフォルダを作りMAMP下のmod_pythonへのシンボリックリンクを作る。
    $ mkdir -p ~/Library/Python/2.5
    $ ln -s /Applications/MAMP/Library/site-packages/ ~/Library/Python/2.5/site-packages
  4. httpd.confに以下の行を追加して、mod_pythonがロードされるようにする。
    LoadModule python_module modules/mod_python.so
  5. 最後にMAMPのApacheを再起動する

mod_pythonが動いているか確かめる。

  1. httpd.confに以下の行を追加する。
    <Location /mpinfo>
       SetHandler mod_python
       PythonHandler mod_python.testhandler
    </Location>
  2. http://localhost/mpinfoにアクセスして以下のような画面が出てくればOK。mpinfo

以上

関連エントリー

5 Responses to “MAMPでmod_pythonが使えるようにする”

  1. しげる Says:

    参考になりました!

  2. しげる Says:

    …と思ったら、最後の画面は出てくるんですが .pyファイルをブラウザで開くとソースがそのまま出てきてしまいます。 何がいけないんですかねえ…

  3. admin Says:

    pythonスクリプトをCGIとして動作させたいのでしたら、 httd.confなどに、通常のCGIの設定を行うだけです。 以下、自分の設定を書いてみました。 AddHandlerに.pyを追加して、CGIとして動作させています。

    httpd-vhosts.conf

    <VirtualHost *:49178>
        DocumentRoot /work/web/49178/www
        ScriptAlias "cgi-bin" /work/web/49178/cgi-bin
        AddHandler cgi-script .cgi .pl .sh .py
        ScriptAlias /cgi-bin/ "/work/web/49178/cgi-bin/"
    </VirtualHost>

    /work/web/49178/cgi-bin/hello.py

    #!/usr/bin/python
    # -*- coding: utf-8 -*-

    print "Content-type:text/html"
    print ""
    print "Hello Python"
    hello.pyのパーミッションを755などに設定してURLからアクセスします。

    mod_pythonからpythonインタプリタを通してpythonスクリプトにアクセスする方法は、実は、自分はよくわかっていません。とりあえずこちらなどを参考にされてはいかがでしょうか?

    /Applications/MAMP/conf/apache/python.conf

    AddHandler mod_python .py
    PythonHandler hello
    PythonDebug On

    という風に記述して、

    /path/to/hello.py

    from mod_python import apache
    def handler(req):
      req.content_type = "text/plain"
      req.send_http_header()
      req.write("Hello, World")
      return apache.OK

  4. しげる Says:

    わざわざご丁寧にありがとうございます。 PHPに慣れてしまっていたせいで

    ・.pyファイル先頭の2行が必須 ・パーミッション設定も必須 ・出力が何もないとInternal Server Errorが出る

    という点が理解できてませんでした。 自分の場合はローカルサーバー全域でPythonが使えるようにしたかったので、単にhttpd.confに

    AddHandler cgi-script .py

    の一行を追加するだけで有効になりました。 ありがとうございました!

  5. [Python] 在MAMP中使用mod_python (only on mac) | 不務正業 Says:

    [...] 視需要重起。這樣就會在mpinfo的這個資料夾單獨使用到python 作法轉自:MAMPでmod_pythonが使えるようにする … other posts by walile [...]

Leave a Reply