嵌入Python在Apache2与mod_python(Debian Etch)
版本1.0
作者:Falko Timme
本教程将介绍如何使用Apache2在Debian Etch服务器上安装和使用mod_python 。 mod_python是一个Apache模块,它将Python解释器嵌入到服务器中。 它允许您在Python中编写基于Web的应用程序,该应用程序的运行速度比传统的CGI快多倍,并且可以访问高级功能,例如保留数据库连接以及访问Apache内部部件之间的数据库连接和其他数据的能力。
我不会保证这将为您工作!
1初步说明
我已经在Debian Etch服务器上测试了这个IP地址192.168.0.100
,其中已经安装了Apache2。
在这个例子中,我使用的文件是root / var / www
的虚拟主机。
2安装mod_python
要安装mod_python,我们只需运行:
apt-get install libapache2-mod-python
3配置Apache
现在我们必须配置Apache,以便它可以处理Python文件。 有两种方法可以这样做。 第一个(和默认)一个是使用Publisher处理程序
。 它允许您编写纯Python脚本,扩展名为.py,将由Apache解释。 第二种方式是PSP处理程序
。 PSP代表Python服务器页面。 它允许您将Python代码直接嵌入到HTML代码中,类似于PHP。 PSP文件的扩展名为.psp
。
3.1出版者处理程序
要启用发布商处理程序,我们必须打开我们的vhost配置(我使用Debian上的默认文件root / var / www
;该vhost的配置位于/ etc / apache2 / sites-available / default中
)并添加AddHandler mod_python .py
, PythonHandler mod_python.publisher
和PythonDebug On
的行:
vi /etc/apache2/sites-available/default
[...] <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On </Directory> [...] |
之后重新启动Apache:
/etc/init.d/apache2 restart
现在我们用纯Python代码创建一个Python测试脚本(例如/var/www/test.py
)
vi /var/www/test.py
def index(req): return "Test successful"; |
...并在浏览器中调用它(例如http://192.168.0.100/test.py
)。 如果一切顺利,应在浏览器中显示测试成功
。
3.2 PSP处理程序
要启用发布商处理程序,我们必须打开我们的vhost配置(我使用Debian上的默认文件root / var / www
;该vhost的配置位于/ etc / apache2 / sites-available / default中
)并添加AddHandler mod_python .psp
, PythonHandler mod_python.psp
和PythonDebug On
的行:
vi /etc/apache2/sites-available/default
[...] <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .psp PythonHandler mod_python.psp PythonDebug On </Directory> [...] |
之后重新启动Apache:
/etc/init.d/apache2 restart
现在我们用HTML和Python代码创建一个小的PSP测试脚本(例如/var/www/test.psp
)
vi /var/www/test.psp
<html> <body> <h1><% req.write("Hello!") %></h1> </body> </html> |
...并在浏览器中调用它(例如http://192.168.0.100/test.psp
)。 如果一切顺利,应该显示你好!
在你的浏览器
4个Python模块
如果您需要更多的Python模块,可以像这样搜索:
apt-cache search python
选择您需要的并安装它们如下所示:
apt-get install python-mysqldb python-xml
之后重新启动Apache:
/etc/init.d/apache2 restart
5链接
- mod_python: http : //www.modpython.org
- Python: http : //www.python.org
- Apache: http : //httpd.apache.org
- Debian: http : //www.debian.org