0

类似的问题在这里,但没有回答我的问题:PHP script not executed on HTML Form 'Submission'

index.html在 linux 机器的根 web 文件夹中托管了一个网页 ( )。这是一个简单的一键输入页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <body>
    <form action="cgi-bin/foo.php" method="post">
        <input type="Submit" value="TEST">
    </form>
  </body>
</html>

我还有一个简单的 PHP 文件 ( foo.php),它会在运行时创建一个简单的文档。该文件保存在我的 web 根目录的 cgi-bin 文件夹中。

<?php
   $my_file = 'foo.xml';
   $handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file); 
   $data = '<foo>OK</foo>';
   fwrite($handle, $data);
   fclose($handle);

   echo "foo.xml file created";
?>

现在,网页可以正常运行,我可以从命令提示符运行 PHP 并正常执行。.html 和 .php 文件都被赋予了 CHMOD 777 权限。

但是,尝试使用 web 输入按钮提交运行 .php 会出现此错误:

403 Forbidden 请求的 URL '/index.html' 解析为标记为可执行但不是 CGI 文件的文件;取回它是被禁止的。

我一直在谷歌搜索如何将 .php 文件包装到 .cgi 包装器中,但一切看起来都很混乱。当然,我在这里缺少一些简单的东西吗?

任何有关如何解决此错误的建议将不胜感激。谢谢,

4

1 回答 1

1

将 foo.php 页面移动到与 index.html 表单相同的目录中。

将表单的目标更改为 foo.php。

如果您的网络服务器设置正确以解析 PHP,它应该“正常工作”。

现在很少看到 php 作为 cgi 脚本运行。

于 2013-01-17T22:02:23.210 回答