Php URL路径不工作,绝对路径不工作

Php URL路径不工作,绝对路径不工作,php,path,fastcgi,absolute-path,Php,Path,Fastcgi,Absolute Path,我切换了主机提供商,现在出现了以下问题 函数,imagecreatefromjpeg(),正在尝试从文件的URL路径()读取文件。此函数在旧安装程序上运行,但在新安装程序上失败,并出现以下错误 (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server Premature end of script headers: index.php 当我将URL路径替换为同一文件的绝对路径时,问题就消失了

我切换了主机提供商,现在出现了以下问题

函数,
imagecreatefromjpeg()
,正在尝试从文件的URL路径()读取文件。此函数在旧安装程序上运行,但在新安装程序上失败,并出现以下错误

(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
Premature end of script headers: index.php
当我将URL路径替换为同一文件的绝对路径时,问题就消失了

我能看到的区别是

  • 新的设置使用nginx作为Apache的反向代理
  • 新安装的PHP版本是5.3.3,旧安装的版本是5.3.14
  • 我们尝试了很多方法,但不知道如何在较新的设置中使用URL路径。有人能帮忙吗?

    尝试通过函数更改url“”

        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”,则可以替换它

    是否确实相应地配置了nginx Web服务器?以下是一些很好的教程,可以解释一些更相关的nginx和php fastcgi process manager常见的陷阱:


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

    当我运行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脚本正确使用终端变量。

    您可能已经遇到过它,但在做一些研究时,我发现。它可能与您的.htaccess有关。您是否检查过您的.htaccess以确保没有来自旧主机的自定义php处理程序?这里“读取文件”的确切含义是什么?您正在执行一个
    include()
    /
    require()
    ?上面的错误来自函数imagecreatefromjpeg(),当它试图读取作为参数提供的图像路径时。正确的PHP版本应该是5.3.27(更准确地说是5.5.1)。5.3.3已有3年以上的历史,并存在多个安全问题,这些问题已在以后的版本中修复。人们真的不应该使用这个非常旧的版本!尤其不应降级。您可以始终使用魔法常量
    \uuuu DIR\uuu
    使用当前文件存储的目录,并使用它创建绝对路径。这样,你就不会陷入那个陷阱。还要注意,cronjob不一定继承为登录shell配置的完整环境。通常只有一个基本的设置,任何路径都应该是绝对的——否则命令会失败,因为它们找不到。该死的。每天学习新的东西。哈哈。谢谢你的指点。