Scripting

CGI 腳本未在 PHP 文件中執行

  • May 30, 2014

我在伺服器中有一個名為 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 文件,我不知道為什麼。

抱歉,但我不明白 CGI 不是 PHP,它是 Perl,這需要 Perl/CGI 支持而不是 PHP。PHP 腳本具有 .php 副檔名,而不是 .cgi/.fcgi。

也許我在這裡錯過了一些東西。您能否進一步澄清問題。比如你用的是什麼網路伺服器?這個 PHP 程式碼是嵌入到 .cgi 腳本中還是?

***** 編輯 *****

因此,您可以將 CGI 視為一個介面,在您使用 Perl 的情況下是介面。您不能在 CGI 環境中混合 PHP,但您可以修改 .cgi 腳本以對 .php 腳本進行外部呼叫。

這可以通過以下幾種方式完成:

  1. 系統()命令
  2. exec() 命令
  3. 使用搖桿
  4. 使用反引號

HTML“工作”正常,因為 HTML 由瀏覽器解釋,而 PHP 是伺服器端語言,必須在適當的環境中執行。

我建議進一步閱讀 Perl 如何執行外部腳本:

http://www.perlhowto.com/executing_external_commands

引用自:https://serverfault.com/questions/599803