2

我切换了托管服务提供商,现在遇到以下问题。

函数 ,imagecreatefromjpeg()正在尝试从其 URL 路径 ( http://mydomain.com/contents/category/certificate/1/template.jpg ) 读取文件。此功能在旧设置上工作,但在新设置上失败并出现以下错误。

(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
Premature end of script headers: index.php

一旦我用同一个文件的绝对路径替换了 URL 路径,问题就消失了。

我可以看到的差异是

  1. 新设置使用 nginx 作为 Apache 的反向代理。
  2. 新设置的 PHP 版本是 5.3.3,旧设置有 5.3.14

我们已经尝试了很多东西,但无法理解如何使 URL 路径在较新的设置上工作。有人可以帮忙吗?

4

3 回答 3

1

你确定你相应地配置了你的 nginx 网络服务器吗?这里有一些很好的教程,可以解释一些更相关的 nginx 和 php fastcgi 进程管理器常见的陷阱:

  1. Ars Technica:Web Served 第 1 部分:设置 Web 服务器

  2. Ars Technica:Web Served 第 3 部分:安装 PHP Fastcgi 进程管理器

  3. Nginx 常见的陷阱

我链接了这些资源,因为似乎您的重写引擎配置错误。无论如何,请提供更好的上下文!

于 2013-07-23T06:23:40.703 回答
0

尝试通过函数 更改 url ' http://mydomain.com/ '

    function selfURL(){
    $server1 = $_SERVER['HTTPS'];
    $server2 = $_SERVER['SERVER_PROTOCOL'];
    $server3 = $_SERVER['SERVER_PORT'];
    $server4 = $_SERVER['SERVER_NAME'];


    $s = empty($server1) ? '' : ($server1 == "on") ? "s" : "";
    $protocol = strleft(strtolower($server2), "/").$s;
    $port = ($server3 == "80") ? "" : (":".$server3);
    return $protocol."://".$server4.$port;

    }
function strleft($s1, $s2){
return substr($s1, 0, strpos($s1, $s2));
}
print(selfURL());

如果不使用,您可以替换 '$port'

于 2013-07-09T02:20:04.497 回答
0

当我运行 cron 时,我的服务器上有这个问题。

这是我可以基于类似主题所说的话。

1) 页面加载到类似 ~/.

2)您引用位于 ~/../private/hello/derp.php 的另一个页面

3) 在 derp.php 中,假设您正在从 ~/../private/hello/.' 运行文件

4)实际上你是从 ~/.

5) 文件引用错误,因为 PWD 错误。

弄清楚我的东西很烦人,但是当我深入研究它时,我意识到它试图从 ~/../private/hello/images/hi.jpg 之类的东西加载东西,实际上是因为 PWD ,它正在查找不存在的 ~/images/hi.jpg。

也许这对你有帮助。我希望确实如此。

编辑你也想知道很多时候,~/. 因为你可以和 ~/. 公共的。这也是需要注意的地方。

尝试通过 bash 脚本正确使用终端变量。

于 2013-07-25T20:32:55.507 回答