为什么可以';t my.php扩展文件作为CGI在CGIBIN文件夹(linux服务器)中的CGI工作?

为什么可以';t my.php扩展文件作为CGI在CGIBIN文件夹(linux服务器)中的CGI工作?,php,linux,hosting,cgi,Php,Linux,Hosting,Cgi,我最近从“www.domain.com”购买了域名和主机。我的主机是“Linux主机”。我用PHP编写了一个网站。当我寻找主机功能时,有PHP5支持。之后,在web站点配置中,我注意到PHP5支持只能作为cgi应用程序使用。直到现在,我还不知道cgi是什么。我研究了一下。我注意到有一个名为cgi-bin的目录。我把我的php文件放在里面,但给出了内部服务器错误。 但在CGIBIN目录中,.cgi扩展可以工作。当我从Internet上查看时,我了解到必须在.htaccess或httpd.conf中

我最近从“www.domain.com”购买了域名和主机。我的主机是“Linux主机”。我用PHP编写了一个网站。当我寻找主机功能时,有PHP5支持。之后,在web站点配置中,我注意到PHP5支持只能作为cgi应用程序使用。直到现在,我还不知道cgi是什么。我研究了一下。我注意到有一个名为cgi-bin的目录。我把我的php文件放在里面,但给出了内部服务器错误。 但在CGIBIN目录中,.cgi扩展可以工作。当我从Internet上查看时,我了解到必须在.htaccess或httpd.conf中添加一些处理程序。我没有权限访问这些文件,但我可以从我的主机中的“网站配置”添加一些处理程序


我知道我做错了什么,但我不知道是什么。谢谢……

CGI意味着PHP被配置为作为独立于web服务器(通常是apache)的进程运行,而不是作为web服务器的模块运行

您应该能够简单地将php文件放在web根目录下(通常在/var/www中),在浏览器中导航到该文件,所有这些都应该可以工作


另外,确保检查apache日志,在/var/log/

中搜索托管文档。我打赌您将需要添加
#/path/to/php
位于脚本的第一行。

如果您可以访问服务器的日志,请检查错误日志。它将解释500错误的原因。联系托管公司的支持团队是最好的选择,但我猜您不必将文件放在cgi bin目录中。该目录是相当过时的服务器配置形式遗留下来的。您的PHP文件应该可以从您的web文件应该存储在的普通目录中执行(很可能命名为“public_html”)。嗨,奥尔布赖特,正如您所说的,没有必要将PHP文件放在cgi bin文件夹中。在httpdocs目录中,除php4文件外,所有文件都可以工作。没有php5支持。例如,我的类文件在该目录下无法工作,因为类在php5之后可用。他问“为什么他不能将php文件放入cgi-bin”。是的,它可以工作,但只有php4文件。不是php5文件。。。在我的错误日志中,有以下错误:无法打开日志文件fopen:权限被拒绝脚本头过早结束:test.phpcan能否验证php的版本并通知我?在httpdocs文件夹中,我的php版本是PHP4.4.9。。。但是当我尝试访问我的类(类在php5中起作用)时,它不起作用。我的服务器的PHP5支持与cgi应用程序相同。如何使我的文件作为cgi工作?请查看控制面板中的主机。有时,它们提供了一种简单的方法来选择希望宿主具有的PHP版本。我以前见过这个。你不需要修改你的代码。php的CGI/模块模式仅取决于服务器配置,而不是编写代码的具体方式。