【问题标题】:Making Python scripts work on MAMP使 Python 脚本在 MAMP 上工作
【发布时间】:2011-02-09 14:59:43
【问题描述】:

我正在使用 mamp 服务器来测试我的所有网页。我是 python 新手。我能够在 python 解释器中运行一个脚本,该脚本通常会打印一个 hello world。

print "Hello World!"   

所以我在一个名为 test.py 的文件中使用了同一行。那么我应该如何在网络上运行它。

作为 python 新手,我尝试了一些正常的事情,将 test.py 放在 /htdocs/cgi-bin/ 中并尝试打开它。但它说禁止页面。

请任何人帮助我完成这项工作。谢谢

【问题讨论】:

  • @Volatil3 chmod +777 test.py 为我工作。

标签: python web-applications mod-python


【解决方案1】:

要使用 CGI 执行此操作,我建议阅读 Python CGI docs。至少需要输出内容类型和html标签:

print "Content-Type: text/html"
print
print "<html>"
print "<head>"
print "<title>Example of Python CGI script</title>"
print "</head>"
print "<body>"
print "Hello World!"
print "</body>"
print "</html>"

另外,请确保 Web 服务器软件具有执行脚本的权限。您应该可以使用chown 设置所有权,使用chmod 设置permissions

【讨论】:

  • 嗨@matt 我对Web 应用程序非常陌生,请您对如何运行命令更加热情。我正在使用 MAMP 服务器,并且我的本地主机重定向到 htdocs/。我应该在哪里放置 python 文件以及如何运行 chmod 命令?
  • @Ravi Teja:我从未在 MAMP 上工作过;希望我的 Linux 和 WAMP 经验就足够了。此外,其中一些取决于配置,因此您可能需要为您的系统调整以下内容。将脚本放在 /htdocs/cgi-bin 中应该可以工作,假设这是您的服务器配置所设置的。从命令行运行 chown & chmod;与文件位于同一目录中是最简单的。我建议使用chown apache:apache hello.py 将文件的所有权设置为网络服务器(假设服务器在用户 apache 下运行)。然后chmod u+x 允许程序运行。
  • 感谢您的快速回复,所以当我尝试从终端运行 chown 命令进入 cgi-bin 目录时,出现错误 chown: apache: Invalid argument
  • 不幸的是,这很难通过论坛诊断——至少对我来说是这样。第一个猜测是运行您的服务器的用户不称为 apache。找出服务器在哪个用户下运行并使用该用户名。或者,您可以只 chmod o+x hello.py 使文件可供任何人运行。这将允许您对其进行测试。我已经看到操作系统设置为以这种方式运行。但是,有些人对这样的设置存在安全问题 - 如果这是一个开发系统并且您不允许外界看到该站点,那么这可能不是问题。
  • @GreenMatt 嗨,马特,我怎样才能让用户使用 apache,假设用户是 root,我应该尝试什么命令 chown root:apache hello.py 或 chown apache:root hello.py 或chown root:root hello.py
【解决方案2】:

知道这是一篇旧帖子,但我会加两分钱。

我将我的 *.py 脚本放在 /Applications/MAMP/cgi-bin 中

使用 #!/bin/usr/python 开始我的脚本

                  print "Content-type:text/html \r\n\r\b"

然后 chmod 755 .py 并使用 cgi-bin 目录中的 ./.py 运行它

希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 2014-04-10
    • 2021-08-27
    • 1970-01-01
    • 2012-07-03
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    相关资源
    最近更新 更多