【问题标题】:Python, nginx and Flask, how to execute a php post script - 405 METHOD NOT ALLOWEDPython、nginx 和 Flask,如何执行 php post 脚本 - 405 METHOD NOT ALLOWED
【发布时间】:2012-12-28 00:16:42
【问题描述】:

我有一个需要执行的客户端脚本。它是一个发布帖子的 php 脚本。我的 web 框架是使用 uWSGI 作为中间件的 python flask 和 nginx。 php 文件是将 dhtmxlGrid 导出到 excel 的脚本。当尝试导出时...以下错误是我得到的。我对 PhP 一无所知。

这是我要执行的命令。我在服务器上安装了 php,所以我相信。刚刚做了一个 apt-get install php5.

<input type="image" src="static/pix/excel.png" WIDTH=25 HEIGHT=25 value="Get as Excel" onclick="mygrid.toExcel('static/js/dhtmlxGrid/codebase/grid-excel-php/generate.php');">

这是我在单击导出到 excel 按钮时遇到的 FireFox 错误。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>405 Method Not Allowed</title>
<h1>Method Not Allowed</h1>
<p>The method POST is not allowed for the requested URL.</p>

更新:

我将以下内容添加到 nginx.conf 文件中。

location /static/js/dhtmlxGrid/codebase/grid-excel-php/generate.php {
            access_log   off;
            allow 127.0.0.1;
        }

同样的错误。 405.

如果我在 broser 中调用 http://dashboard.com/static/js/dhtmlxGrid/codebase/grid-excel-php/generate.php,我会得到一个下载 generate.php 对话框,我可以在其中看到代码。所以……猜猜php没有被执行。

【问题讨论】:

  • 如果你从broser调用PHP脚本会发生什么?
  • 如果我用 post parms 粘贴 url,它只会下载名为 generate.php 的文件

标签: php python nginx


【解决方案1】:

您需要在您的 nginx 配置中添加一个 location 指令,该指令指向 static/generate.php 并使用 PHP 解释器呈现它。然后在您的烧瓶应用程序中,您发布到您的 nginx 配置中定义的 URL。

【讨论】:

    【解决方案2】:

    Flask 或 Python 不知道如何解释 PHP,您还允许在任何路由上使用 POST 方法,最好的办法是在 nginx 中捕获请求并从 php 解释器中提供服务。

    【讨论】:

    • 如果我有一个名为 static/generate.php 的文件,我该如何从 nginx 提供服务器?
    • 你需要一个 php 解释器来评估和执行文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 2014-04-09
    • 2015-03-09
    相关资源
    最近更新 更多