10.1 安装
要让APACHE拥有运行PYTHON的能力,我们必须在APACHE服务器上,安装上PYTHON,和MOD_PYTHON
下载地址。
其中不同版本的MOD_PYTHON对于所支持的APACHE版本及PYTHON版本的是有严格限制的,
各位在下载时必须注意,并找到对应的版本,否则可能会出现问题。
下载完毕后,对MOD_PYTHON进行安装即可。
10.2 配置
在完成安装后,我们就要对APACHE进行配置了, 请打开APACHE的配置档(httpd.conf),加入下列配置:
LoadModule python_module modules/mod_python.so ##请确定mod_python.so是否存在于APACHE目录下的modules文件夹中
<Directory "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs/test">
##<Directory>中写入要运行的python脚本所在的路径,这设定将对子目录有效
AllowOverride FileInfo ##必须加上,否则PY不能运行。
AddHandler mod_python .py ##说明在目录下所有.py文件都由MOD_PYTHON负责执行
SetHandler mod_python
PythonHandler test ##入口的PY名称,在这例子,所有PY在运行时,都会先找到TEST.py中的handler函数作初始工作。
##严重注意:如果客户端是使用POST方法传送资料,则必须在handler中调用read()方法,否则POST信息将被APACHE截取。
PythonHandler mod_python.publisher
##使用publisher后,客户端就可调用某一.py中的某一函数,如Http://localhost/test/test1.py/hello?word='hi'
PythonDebug On ##将出录信息打印到APACHE的日志中
</Directory>
附注:如果要在 apache + mod_python 中只运行 .pyo/.pyc 文件则需要将配置修改如下:
入口(如本例的test222.py)需要保留 .py脚本文件,否则将会找不到入口,
其他文件可以用编译后的.pyc/.pyo文件
PythonOptimize On //这是引入python 的优化机制,并没有影响
<Directory "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs/test1">
AllowOverride All
PythonHandler test
PythonAuthzHandler test::handler //增加这句test::handler其中的handler是入口函数,
//中间的“::”按文档说的:能提高效率
//如果有包或者是文件夹的情况可以写成 test1.test::handler
AddHandler mod_python .pyc
AddHandler mod_python .pyo
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
PythonAuthzHandler test::handler //增加这句test::handler其中的handler是入口函数,
//中间的“::”按文档说的:能提高效率
//如果有包或者是文件夹的情况可以写成 test1.test::handler
AddHandler mod_python .pyc
AddHandler mod_python .pyo
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>