Python埋め込み · 1 min read · Nov 12, 2025

Apache2にmod_pythonでPythonを埋め込む (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)

Apache2にmod_pythonでPythonを埋め込む (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)

Version 1.0
Author: Falko Timme

このチュートリアルでは、Apache2でmod_pythonを使用する方法を、さまざまなディストリビューション(Debian/Ubuntu、Fedora/CentOS、Mandriva、OpenSUSE)で示します。mod_pythonは、サーバー内にPythonインタプリタを埋め込むApacheモジュールです。これにより、従来のCGIよりもはるかに高速で動作し、データベース接続や他のデータをヒット間で保持する能力、Apache内部へのアクセスなどの高度な機能を持つPythonでのWebベースのアプリケーションを作成できます。

私はこれがあなたにとって機能するという保証を出しません!

1 予備ノート

私は、Apache2がすでにインストールされているIPアドレス192.168.0.100のシステムでこれをテストしました。

2 Debian/Ubuntu

Debian/Ubuntuの場合は、次のチュートリアルを参照してください: Apache2にmod_pythonでPythonを埋め込む (Debian Etch)。

ISPConfigユーザー向け

そのチュートリアルでは、他のvhostに影響を与えないデフォルトのvhostでmod_pythonを有効にしていますので、ISPConfig(バージョン2.2.24以降)を使用している場合は、その設定を変更せずに使用でき、ウェブサイトごとにmod_pythonを有効/無効にできます。ISPConfigはPublisher Handlerを使用します - PSP Handlerはサポートされていません。

3 Fedora 9/CentOS 5.2

3.1 mod_pythonのインストール

mod_pythonをインストールするには、単に次のコマンドを実行します:

yum install mod_python

3.2 Apacheの設定

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

3.2.1 Publisher Handler

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

cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig  
cat /dev/null > /etc/httpd/conf.d/python.conf  
vi /etc/httpd/conf.d/python.conf

| LoadModule python_module modules/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 "Test successful"; |

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

3.2.2 PSP Handler

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

cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig  
cat /dev/null > /etc/httpd/conf.d/python.conf  
vi /etc/httpd/conf.d/python.conf

| LoadModule python_module modules/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("Hello!") %>

|

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

Share: X/Twitter LinkedIn

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

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