Apache設定 · 1 min read · Nov 12, 2025

Apache2にPythonを埋め込む (mod_python) - ページ 2

4 Mandriva 2008 Spring (2008.1)

4.1 mod_pythonのインストール

mod_pythonをインストールする前に、main、main_updates、contrib、およびcontrib_updatesリポジトリを有効にする必要があります。http://easyurpmi.zarb.org/ にアクセスしてください。これにより、これらのリポジトリを有効にするために実行する必要のあるコマンドが表示されます。私の場合、以下を実行しました。

urpmi.addmedia contrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.cz

これで有効になりました。

mod_pythonをインストールするには、単に以下を実行します。

urpmi apache-mod_python

4.2 Apacheの設定

次に、ApacheがPythonファイルを処理できるように設定する必要があります。これには2つの方法があります。最初の方法(デフォルト)は、Publisher Handlerを使用することです。これにより、.py拡張子の純粋なPythonスクリプトを作成し、Apacheによって解釈されます。2番目の方法はPSP Handlerです。PSPはPython Server Pagesの略で、PHPのようにHTMLコードに直接Pythonコードを埋め込むことができます。PSPファイルの拡張子は.pspです。

4.2.1 Publisher Handler

Publisher Handlerを有効にするには、/etc/httpd/modules.d/16_mod_python.confにあるmod_pythonの設定を編集する必要があります。このファイルには多くの例が含まれているため、バックアップを作成し、最初からそのファイルを再作成します。ここでは、ディレクティブ内でデフォルトのMandrivaドキュメントルート/var/www/htmlを使用しています - これは必要に応じて調整してください。重要な行はAddHandler mod_python .pyとPythonHandler mod_python.publisherです。

cp /etc/httpd/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/mod_python.so Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On |

注意: サーバーでISPConfig(バージョン2.2.24以降)を使用している場合は、上記のファイル内の部分を省略してください。これにより、該当するディレクトリに対してmod_pythonがグローバルに有効になります。ISPConfigでは、ウェブサイトごとにmod_pythonを有効にすることができ、どのウェブサイトがmod_pythonを使用できるかをより制御できます。

その後、Apacheを再起動します。

/etc/init.d/httpd restart

次に、純粋なPythonコードを含む小さなPythonテストスクリプト(例: /var/www/html/test.py)を作成します…

vi /var/www/html/test.py

| def index(req): return "テスト成功"; |

… そしてブラウザで呼び出します(例: http://192.168.0.100/test.py)。すべてがうまくいけば、ブラウザに「テスト成功」と表示されるはずです。

4.2.2 PSP Handler

PSP Handlerを有効にするには、/etc/httpd/modules.d/16_mod_python.confにあるmod_pythonの設定を編集する必要があります。このファイルには多くの例が含まれているため、バックアップを作成し、最初からそのファイルを再作成します。ここでは、ディレクティブ内でデフォルトのMandrivaドキュメントルート/var/www/htmlを使用しています - これは必要に応じて調整してください。重要な行はAddHandler mod_python .pspとPythonHandler mod_python.pspです。

cp /etc/httpd/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/mod_python.so Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .psp PythonHandler mod_python.psp PythonDebug On |

注意: サーバーでISPConfig(バージョン2.2.24以降)を使用している場合は、上記のファイル内の部分を省略してください。これにより、該当するディレクトリに対してmod_pythonがグローバルに有効になります。ISPConfigでは、ウェブサイトごとにmod_pythonを有効にすることができ、どのウェブサイトがmod_pythonを使用できるかをより制御できます。また、ISPConfigはPSP Handlerをサポートしていないため、Publisher Handlerを使用します。

その後、Apacheを再起動します。

/etc/init.d/httpd restart

次に、HTMLとPythonコードを含む小さなPSPテストスクリプト(例: /var/www/html/test.psp)を作成します…

vi /var/www/html/test.psp

|

<% req.write("こんにちは!") %>

|

… そしてブラウザで呼び出します(例: http://192.168.0.100/test.psp)。すべてがうまくいけば、ブラウザに「こんにちは!」と表示されるはずです。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。