2010-02-23 100 views
1

所有我想要做的(最初)如下:爲什麼犯規我的PHP腳本工作

<?php 
phpinfo(); 
?> 

我同時運行兩個不同的Web服務器。如果我嘗試在firefox中打開上面的文件,在任何文件名下,使用來自apache的80端口,它只是迴應上述內容。

如果我嘗試打開上面,因爲任何文件名,從蟒蛇絞Web服務器端口:8888,我得到一個HTTP 500錯誤(CGI腳本錯誤腳本頭

過早結束。)!

我正在運行Gentoo linux。我已經安裝並重新安裝了cgi不同的方式。任何其他文件,不使用CGI,都將按照預期在兩臺Web服務器上進行服務。

+1

您是否在httpd.conf文件中具有PHP所需的設置? – Boldewyn 2010-02-23 13:53:12

+0

這可能是一個serverfault.com問題,因爲問題在於Web服務器未正確提供PHP文件。 – Josh 2010-02-24 13:54:57

回答

-1

你需要輸出的標頭CGI第一:

<?php 
echo "Content-type: text/html\n"; 
echo "\n"; 

phpinfo(); 
?> 

參考the CGI documentation獲取更多信息。

編輯:

下的httpd,你需要把腳本cgi-bin/,並通過有訪問它,例如http://example.com/cgi-bin/phpinfo.php

+0

只是迴應了額外的東西(兩個回聲),和python完全相同的響應。 – mrsmoothie 2010-02-23 13:58:38

+0

擺脫了500錯誤,果然。但我想我將不得不去Gentoo.org並做更多的研究。我只能在cgi-bin中運行腳本。我如何從腳本調用phpinfo()? – mrsmoothie 2010-02-23 14:52:40

0

你不需要運行php作爲cgi-bin。只需將該文件放在htdocs文件夾下即可。

使在httpd.conf確認您加載mod_php5使用的LoadModule

並重新啓動服務器 - >的apachectl重新啓動

它將開箱

1

和獲獎者是:

<IfDefine PHP5> 
    # Load the module first 
    <IfModule !mod_php5.c> 
      LoadModule php5_module modules/libphp5.so 
      AddHandler php5-script php 
      AddHandler php5-script html 
      AddType text/html  php 
    </IfModule> 

    # Set it to handle the files 
    <FilesMatch "\.ph(p5?|tml)$"> 
      SetHandler application/x-httpd-php 
    </FilesMatch> 

    <FilesMatch "\.phps$"> 
      SetHandler application/x-httpd-php-source 
    </FilesMatch> 

    DirectoryIndex index.php index.phtml 

我真的不知道w ^我還在做帽子。我所知道的是我達到了預期效果:我的根htdocs目錄中的任何* .php或* .html文件都將正確呈現php SCRIPTS。我在網絡郵件中發現了很多混淆因素。我的php腳本以<?開頭,並以?>結尾。沒有必要編寫<?php,也沒有必要在* .php文件中寫出任何http頭文件。

+0

但這不是CGI。這是mod_php。 – 2010-02-26 03:29:00

+0

是的。 CGI錯誤來自python扭曲的web服務器。抱歉讓大家都感到困惑。我只是想能夠在* .php或* .html文件中渲染一個php腳本。它沒有與Apache的工作,所以我試圖打開python扭曲的Web服務器。 感謝您的幫助,Ignacio。 – mrsmoothie 2010-02-26 03:43:36

相關問題