2013-07-09 91 views
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路径上较新的设置工作。任何人都可以帮忙吗?

+0

您可能已经遇到它,但在做一些研究后,我发现[this](http://serverfault.com/questions/120150/php-5-3-2-fcgid-2-3-5- Apache的2-2-14-suexec的连接位复位逐同行MO)。这可能是相关的 – Orangepill

+0

你有没有检查过你的.htaccess文件,以确保你的旧主机没有自定义的PHP处理程序? – stefancarlton

+0

“读取文件”究竟意味着什么?你正在做一个'include()'/'require()'吗? – Sliq

回答

1

你确定了相应的配置你的Web服务器nginx的你可以替换“$端口”更改URL“http://mydomain.com/”?这里是可以解释一些更相关的Nginx和PHP FastCGI进程管理器常见陷阱的一些好的教程:

  1. Ars Technica: Web Served part 1: Setting up a web server

  2. Ars Technica: Web Served part 3: Installing PHP Fastcgi Process Manager

  3. Nginx common pitfalls

我链接这些资源,因为它看起来好像你的重写e的配置有误ngine。无论如何,请提供更好的背景!

0

试图通过一个函数

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()); 

如果不使用

0

我在我的服务器上运行cron时遇到了这个问题。

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

1)一个页面加载类似〜/。

2)可引用位于〜/../私人/你好/ derp.php

3)内derp.php它是你正在运行的〜/文件的假设下,另一页.. /私营/你好/“。

4)实际上你正在运行它〜/。 5)文件引用是错误的,因为PWD是错误的。

我的东西很烦人,但是当我深入地看着它时,我发现它试图从〜/../ private/hello/images/hi.jpg等东西中加载东西。因为PWD的真实性,它正在寻找不存在的〜/ images/hi.jpg。

也许这会帮助你。我希望它。

编辑你也想知道很多时间〜/。因为你可以不同于〜/。的公共。这也是需要注意的一点。

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

+1

通过使用魔术常量'__DIR__',您可以始终使用当前文件的存储目录,并使用它创建绝对路径。那样,你就不会陷入这个陷阱。另请注意,cronjob不一定会继承为登录shell配置的完整环境。通常只有一个基本的设置,任何路径都应该是绝对的 - 否则命令会失败,因为找不到它们。 – Sven

+0

该死的。每天学些新东西。哈哈。感谢那个指针。 – Fallenreaper