虚拟机中的 Ubuntu 12.10 服务器。
我已mod_python
使用安装apt-get
,使用 启用它a2enmod
,然后重新启动apache2
。我还进行了\etc\apache2\sites-available\defaults
如下编辑。我的脚本驻留在/var/www/py/
jQquery.ajax post 函数中并通过该函数调用。此脚本正在触发,但以纯文本形式返回自身。它应该返回 json,这表明我错过了一些明显的设置步骤。
取消注释下面的 testhandler 行,会导致脚本返回 mod_python.testhandler 输出 -基本的php.info() 输出,但针对的是 python。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/py>
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddHandler mod_python .py
#PythonHandler mod_python.testhandler
PythonDebug On
</Directory>
答案1
作为对你的问题的非回答:mod_python 不再是部署 python 应用程序的推荐方式。将你的应用程序转变为适当的 wsgi 应用程序并使用 mod_wsgi 是最先进的。
现在给出一个实际的答案:您需要设置一个处理程序。mod_python 不仅仅运行随机脚本,而且您需要指定哪个模块包含处理程序,这就是 AddHandler 所做的。
有关详细信息,请参阅mod_python 教程。