【问题标题】:Why can't my .php extension files work in as CGI in cgi-bin folder(linux server)?为什么我的 .php 扩展文件不能在 cgi-bin 文件夹(Linux 服务器)中作为 CGI 工作?
【发布时间】:2012-04-21 14:59:35
【问题描述】:

我最近从 “www.domain.com” 购买了域名和托管服务。我的主机是“Linux 主机”。我用 PHP 准备了一个网站。当我在寻找托管功能时,有 PHP5 支持。之后,在网站配置中,我注意到 PHP5 支持仅作为 cgi 应用程序 提供。到目前为止,我还不知道 cgi 是什么。我研究了一下。我注意到有一个名为 cgi-bin 的目录。我将我的 php 文件放入其中,但给出了内部服务器错误。 但在 cgi-bin 目录中,.cgi 扩展名有效。当我从 Internet 上查看时,我了解到必须在 .htaccess 或 httpd.conf 中添加一些处理程序。我无权访问这些文件,但我可以从我的主机中的“网站配置”添加一些处理程序。

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

【问题讨论】:

  • 如果您有权访问服务器的日志,请检查错误日志。它将解释导致 500 错误的原因。
  • 联系您的托管公司的支持团队是您最好的选择,但我猜您不必将文件放在 cgi-bin 目录中。该目录是相当过时的服务器配置形式的保留。你的 PHP 文件应该可以从你的 web 文件应该存储的普通目录中执行(很可能命名为“public_html”)。
  • 嗨奥尔布赖特,正如你所说,没有必要将 php 文件放在 cgi-bin 文件夹中。在 httpdocs 目录中,所有文件都可以工作,但只有 php4 文件。没有 php5 支持。例如,我的类文件不适用于该目录,因为类在 php5 之后可用。
  • 他的问题是问“为什么他不能把 php 文件放在 cgi-bin 中”。

标签: php linux hosting cgi


【解决方案1】:

CGI 意味着 PHP 被配置为与您的 Web 服务器(通常是 apache)作为一个单独的进程运行,而不是 Web 服务器的模块。

您应该能够简单地将 php 文件放在您的 web 根目录下(通常在 /var/www 中),然后在浏览器中导航到该文件,这样就可以了。

另外,请确保您在 /var/log/ 中检查您的 apache 日志

【讨论】:

  • 是的,它可以工作,但只有 php4 文件。不是php5文件...在我的error_log中,有以下错误:无法打开日志文件fopen:权限被拒绝脚本头过早结束:test.php
  • 你能验证你的 php 版本并告诉我吗? php.net/phpversion
  • 在 httpdocs 文件夹中,我的 php 版本是 PHP 4.4.9 ...但是当我尝试访问我的类(类从 php5 开始工作)时,它不起作用。我的服务器的 PHP5 支持是 cgi 应用程序。如何让我的文件以 cgi 格式工作?
  • 查看您主机的控制面板。有时它们提供了一种简单的方法来选择您希望主机拥有的 PHP 版本。我以前见过这个。而且您无需更改代码。 php的CGI/module模式只看服务器配置,不具体写代码的方式。
【解决方案2】:

搜索托管文档。我敢打赌,您需要在脚本的第一行添加#!/path/to/php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多