【问题标题】:Error with executing Python files in cgi-bin (have tried enabling CGI Scripts in Apache)在 cgi-bin 中执行 Python 文件时出错(已尝试在 Apache 中启用 CGI 脚本)
【发布时间】:2014-03-17 01:57:19
【问题描述】:

我在 Ubuntu 上有一个正在运行的 Apache2 服务器,并安装了 PHP。 我的根文件夹是/usr/local/apache2/htdocs

我已经在/usr/local/apache2/cgi-bin中放了一个测试python脚本,命名为test.py

test.py

#!/usr/bin/python
import cgi
import cgitb; cgitb.enable()
print "Content-Type: text/plain\r\n\r\n"
print 'hi'

我在浏览器中通过http://localhost/cgi-bin/test.py 访问它。目前,它只显示我刚刚输入的 Python 代码,而不是执行它。我已经广泛查看了解决此问题的在线文档和其他 stackoverflow 问题。

根据该研究,我更改了我的 httpd.conf 文件以包含一些 Directory 的文件。

httpd.conf(添加到末尾的东西)

ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">
    Options ExecCGI
    SetHandler cgi-script
</Directory>

<Directory "/usr/local/apache2">
    AddHandler cgi-script .py
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

我已经重新启动/硬启动/停止了 Apache,并且能够通过命令行成功运行 Python 文件,但仍然无法通过浏览器实际执行 Python 文件。我什至检查了 Apache 错误日志,但没有发现问题的迹象。谁能给点建议?

谢谢

【问题讨论】:

  • PHP 和这个有什么关系?
  • 在这个问题的上下文中它不相关,但最终我将在 PHP 页面中执行(通过exec)python 脚本。
  • 请不要使用不相关的标签。

标签: python apache ubuntu cgi-bin


【解决方案1】:

您需要 chmod 755 cgi-bin 文件夹(和/或子文件夹)您的脚本所在的位置。

然后 chmod 755 你的脚本文件。

最后..

在您喜欢的记事本中打开脚本并使用编码 UTF-8 不带 BOM 保存,并且必须为 UNIX 系统设置 EOL(行尾)转换。 (在 Notepad++ 中后者在编辑菜单中)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    相关资源
    最近更新 更多