Python, Apache · 2 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)

버전 1.0
저자: Falko Timme

이 튜토리얼은 Apache2와 함께 다양한 배포판(Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)에서 mod_python을 설치하고 사용하는 방법을 보여줍니다. mod_python은 서버 내에 Python 인터프리터를 임베딩하는 Apache 모듈입니다. 이를 통해 전통적인 CGI보다 훨씬 빠르게 실행되는 Python 기반의 웹 애플리케이션을 작성할 수 있으며, 데이터베이스 연결 및 기타 데이터를 유지하고 Apache 내부에 접근하는 등의 고급 기능을 사용할 수 있습니다.

이것이 당신에게 작동할 것이라는 보장은 하지 않습니다!

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 파일을 처리할 수 있도록 구성해야 합니다. 이를 수행하는 방법은 두 가지가 있습니다. 첫 번째(및 기본) 방법은 Publisher Handler를 사용하는 것입니다. 이를 통해 Apache가 해석할 .py 확장자를 가진 순수 Python 스크립트를 작성할 수 있습니다. 두 번째 방법은 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

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.