如何使用 xampp 在 ubuntu 中运行 python cgi 脚本
Posted
技术标签:
【中文标题】如何使用 xampp 在 ubuntu 中运行 python cgi 脚本【英文标题】:how to run python cgi script in ubuntu using xampp 【发布时间】:2016-09-11 22:59:32 【问题描述】:我无法使用 xampp 在 ubuntu 中运行 python cgi 脚本
我在 httpd.conf(/opt/lampp/etc) 中做了必要的修改
<Directory "/opt/lampp/htdocs">
Options +ExecCGI
AddHandler cgi-script .cgi .py
Order allow,deny
Allow from all
</Directory>
================================================ ===========
我的python脚本文件是
#!/usr/bin/python
# -*- coding: UTF-8 -*-# enable debugging
import cgitb
cgitb.enable()
print "Content-Type: text/html;charset=utf-8"
print "Hello World!"
================================================ =============
提前致谢!
【问题讨论】:
运行后,出现“服务器遇到内部错误,无法完成您的请求。错误消息:在 headers 之前结束脚本输出:labels.py” 服务器上部署的Python脚本中,第2条和第3条print语句之间是否有换行符? 【参考方案1】:CGI 脚本的输出应该由两个部分组成,分开 由一个空行。第一部分包含许多标题, 告诉客户正在跟踪什么样的数据。
https://docs.python.org/2/library/cgi.html
在您当前的代码示例中,缺少空行(不在您最初发布的代码中)。尝试将第一个 print
语句更改为:
print "Content-Type: text/html;charset=utf-8\n
"
它应该可以工作(至少它在带有 Ubuntu 和 Apache 的亚马逊服务器上可以工作)。
我个人使用 Python 和 cgi 的故障排除工作流程:
检查脚本的权限,例如它归 www-data 所有吗? 从命令行调用 Python 脚本时是否运行?即没有简单的拼写错误、缩进错误等。 尝试使用记录器(因为您无法从print
到stdout
)查看崩溃的位置和时间,例如这个:http://www.electricmonk.nl/log/2011/08/14/redirect-stdout-and-stderr-to-a-logger-in-python/
【讨论】:
我在 error.log 中收到错误 [Tue May 17 11:54:24.307673 2016] [cgid:error] [pid 15122:tid 140289761994624] (2)没有这样的文件或目录:AH01241: '/var/www/html/test/labels.py' 的执行失败 [2016 年 5 月 17 日星期二 11:54:24.307933] [cgid:error] [pid 15020:tid 140289461118720] [client 127.0.0.1:60209] End of标题前的脚本输出:labels.py 在您的 httpd.conf 中,您的 cgi 目录是“/opt/lampp/htdocs”,但 Python 脚本似乎在“/var/www/html/test/labels.py”中。移动脚本或更改 http.conf 是否有效? 并从网站linux.com/blog/configuring-apache2-run-python-scripts获取想法 你能发布你的 http.conf 条目吗? ServerAdmin webmaster@localhost DocumentRoot /var/www/html以上是关于如何使用 xampp 在 ubuntu 中运行 python cgi 脚本的主要内容,如果未能解决你的问题,请参考以下文章
在 Ubuntu (laravel) 中使用 XAMPP 运行 PHP 和 MySQL
如何在 Ubuntu 中将 xampp 控制面板设置带到桌面? [关闭]
为啥我的网站在 xampp 中运行,但不在我的 Apache 服务器和我在 Ubuntu 上设置的 mySQL 中运行?