我正在尝试开始使用 Python,但无法为 localhost 正确设置我的服务器(使用 Ampps)。 Python 通过 IDLE 和命令行运行得很好,但是,当我在浏览器中打开文件时,代码会显示但不会运行。
我跟着这个http://www.imladris.com/Scripts/PythonForWindows.html http://www.imladris.com/Scripts/PythonForWindows.html设置 cgi 的教程,但它不起作用。
这是我的“hello world”程序的代码,如果这有什么区别的话。
#!/usr/bin/env python
# -*#!/usr/bin/python
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'
有什么建议么?
您的 Web 服务器将您的 Python 代码视为静态文件而不是可执行文件。这里的目标是您希望 Apache 执行 python 并将标准输出发送回用户的浏览器。
我不熟悉 Ampps,但获得此设置的基本 Apache 流程是这样的。
- 编辑 httpd.conf 的选项行以包含 ExecCGI
- 通过添加以下行,将您的 python 文件注册为 httpd.conf 作为 cgi 处理程序:
AddHandler .py
- 重新启动阿帕奇
-
确保您的 shebang 行(顶部的 #!/usr/bin/env python 位)实际上指向您的 python 可执行文件的路径。对于 C: 上的 python2.6,这可能是:
#!\Python26\python
- 如果您的脚本必须是可移植的,请添加以下行,而不是修改 shebang 行
ScriptInterpreterSource registry
添加到您的 httpd.conf,并确保 Windows 默认使用 Python.exe 打开 *.py 文件。这可以通过双击脚本来测试。如果它没有执行,请右键单击它,选择“打开方式”,然后选择“其他”,然后浏览到您的 python.exe。确保选中“始终使用此程序打开此类型的文件”框。有一篇关于此的 Microsoft 知识库文章here http://support.microsoft.com/kb/307859.
最后,mod_wsgi 或 FastCGI 是让 Apache 执行 python 的首选方法,优先选择流量较低的站点(每天有数十万个请求)。我还建议研究 Web 框架,例如 web.py(非常轻量级)或 django(较重,但如果您收集用户输入或与数据库交互,可以节省大量时间)。
- mod_wsgi 设置说明。 http://code.google.com/p/modwsgi/wiki/InstallationOnWindows
-
FastCGI 文档 http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html(在 Windows 上设置它可能很痛苦)
- 姜戈入门 https://docs.djangoproject.com/en/dev/intro/
- web.py 教程 http://webpy.org/docs/0.3/tutorial
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)