CGI 脚本未在 PHP 文件中运行

CGI 脚本未在 PHP 文件中运行

我在服务器中有一个名为script.cgi的CGI脚本,并且我已将以下代码添加到域vhost:

   Action add-footer /cgi-bin/script.cgi 
   AddHandler add-footer .htm .html 

我已将其更改为:

   Action add-footer /cgi-bin/script.cgi 
   AddHandler add-footer .htm .html .php

如果页面是 HTML,代码将运行,但如果页面是 PHP,代码将不会运行。我需要向 vhost 添加任何代码,以便 PHP 文件可以运行此脚本吗?

****已编辑:****

我想在服务器的每个可能的页面中“注入”HTML 代码,其中包括 HTML 和 PHP 文件。

该代码仅适用于 html 文件,我不知道为什么。

答案1

抱歉,但我不明白 CGI 不是 PHP,而是 Perl,并且这需要 Perl/CGI 支持,而不是 PHP。PHP 脚本具有 .php 扩展名,而不是 .cgi/.fcgi。

也许我在这里漏掉了什么。你能进一步澄清一下这个问题吗?比如你使用的是什么网络服务器?这个 PHP 代码是否嵌入到 .cgi 脚本中?

***** 编辑 *****

因此,您可以将 CGI 视为一个接口,在您的情况下,接口使用 Perl。您不能在 CGI 环境中混合 PHP,但您可以修改 .cgi 脚本以对 .php 脚本进行外部调用。

可以通过以下几种方式实现:

  1. system() 命令
  2. exec() 命令
  3. 使用句柄
  4. 使用反引号

HTML 能够正常“工作”,是因为 HTML 由浏览器解释,而 PHP 是服务器端语言,必须在适当的环境中执行。

我建议进一步阅读有关 Perl 如何执行外部脚本的内容:

http://www.perlhowto.com/executing_external_commands

相关内容