Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python、nginx和Flask,如何执行php post脚本-不允许使用405方法_Php_Python_Nginx - Fatal编程技术网

Python、nginx和Flask,如何执行php post脚本-不允许使用405方法

Python、nginx和Flask,如何执行php post脚本-不允许使用405方法,php,python,nginx,Php,Python,Nginx,我需要执行一个客户端脚本。这是一个php脚本,可以执行post。我的web框架是使用uWSGI作为中间件的python flask和nginx。php文件是一个将dhtmxlGrid导出到excel的脚本。当尝试并导出时…下面的错误就是我得到的。我对PhP一无所知 这是我试图执行的命令。我相信服务器上安装了php。刚刚安装了一个apt get php5 <input type="image" src="static/pix/excel.png" WIDTH=25 HEIGHT=25 val

我需要执行一个客户端脚本。这是一个php脚本,可以执行post。我的web框架是使用uWSGI作为中间件的python flask和nginx。php文件是一个将dhtmxlGrid导出到excel的脚本。当尝试并导出时…下面的错误就是我得到的。我对PhP一无所知

这是我试图执行的命令。我相信服务器上安装了php。刚刚安装了一个apt get 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');">
同样的错误。405


如果我调用broser,我会得到一个下载generate.php拨号框,在那里我可以看到代码。所以…猜测php没有被执行。

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

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

如果你从broser调用PHP脚本会发生什么?如果我用post parms粘贴url,它只会从nginx下载名为generate.phpHow do I server的文件,然后如果我有一个名为static/generate.PHP的文件?你需要一个PHP解释器来评估和执行该文件。
<!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>
location /static/js/dhtmlxGrid/codebase/grid-excel-php/generate.php {
            access_log   off;
            allow 127.0.0.1;
        }