2010-02-23 94 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

相关问题