我在服务器中有一个名为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 脚本进行外部调用。
可以通过以下几种方式实现:
- system() 命令
- exec() 命令
- 使用句柄
- 使用反引号
HTML 能够正常“工作”,是因为 HTML 由浏览器解释,而 PHP 是服务器端语言,必须在适当的环境中执行。
我建议进一步阅读有关 Perl 如何执行外部脚本的内容: