Open Basedir Problematik

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Open Basedir Problematik

    Hallo Leute
    Ich hab das Problem, daß meine Forumssoftware auf einem speziellen Server nicht läuft.
    Ich kann innerhalb eines template-objekts weder dateien includen noch zu mysql connecten.
    Ich vermute, daß es irgendwie mit dem virtuellen Server zusammenhängt.
    Ich habe die Software auf mehreren Servern installiert, nur auf den virtuellen Servern bekomme ich die Fehlermeldung:
    "open_basedir restriction in effect. File is in wrong directory "
    und auf einem der beiden halt das oben beschriebene Problem,
    während der andere virtuelle Server trotz der fehlermeldungen keine zicken macht.

    Ich verwende folgende template-class:
    PHP-Code:
    class tpl  {
    var 
    $template_file;
    var 
    $replace_array;
    var 
    $delimiterStart "{";
    var 
    $delimiterEnd "}";

    function 
    setStartDelim($delim="{")
    {
    $this->delimiterStart $delim;
    }
    function 
    setEndDelim($delim="}")
    {
    $this->delimiterEnd $delim;
    }
    function 
    tpl($template_file)
    {
    if(
    file_exists($template_file))
    {
    $this->template_file implode(""file($template_file));
    return 
    $this->template_file;
    }
    else
    {
    $this->template_file "";
    die(
    "failed to load template file");
    }
    }
    function 
    assign($searchString,$key=false)
    {
    if(
    is_array($searchString))
    {
    foreach(
    $searchString as $var => $key)
    {
    $search $this->delimiterStart.$var.$this->delimiterEnd;
    $replace $key;
    $this->template_file str_replace($search,$replace,$this->template_file);
    }
    }
    else
    {
    $search $this->delimiterStart.$searchString.$this->delimiterEnd;
    $replace $key;
    $this->template_file str_replace($search,$replace,$this->template_file);
    }
    return 
    $this->template_file;
    }
    function 
    get()
    {
    return 
    $this->template_file;
    }
    function 
    out()
    {
    echo(
    $this->get());
    }
    }; 
    Kann mir irgendjemand sagen, was los ist?

    EDIT:
    php.tags by Abraxax
    kann man ja sonst nicht lesen

    Zuletzt geändert von Abraxax; 17.07.2003, 00:16.

  • #2
    open_basedir ist eine Sicherheitseinstellung, mit der auf virtuellen Servern verhindert werden soll, dass php-Skripte z.B. auf Dateien anderer virtueller Server zugreifen. Ein phpinfo() sollte nähere Info bringen. Hast Du Zugriff auf die php.ini?

    Kommentar


    • #3
      Hab leider keinen Zugriff darauf, is nur webspace.
      Hab die phpinfo schon hochgeladen, werde aber von den ganzen infos erschlagen.
      Der Fehler tritt immer dann auf, wenn ich eine Datei folgendermaßen innerhalb eines template-objekts include:
      PHP-Code:
      $replace = array(
      "row1" => include("templates/GIGA/php/main1_row1.php")
      ); 
      Was kann ich ändern, daß der Server nicht rumsuckt?
      Kann ich wenigstens auf dem Server, der nur warnings ausgibt diese unterdrücken?

      Kommentar


      • #4
        Wenn ich da schon nix machen kann, was muß ich bei der Programmierung von php-programmen generell beachten, damit dieser unnötige Fehler nicht mehr auftritt?
        Oder muß ich in Zukunft einfach jedes script auf diesem Server testen und hoffen?

        Kommentar


        • #5
          Was kann ich ändern, daß der Server nicht rumsuckt?
          Kann ich wenigstens auf dem Server, der nur warnings ausgibt diese unterdrücken?
          Die Warnings unterdrücken kannst Du, indem Du ein @ vor die Include- oder Require-Anweisung setzt. Für alles weitere brauchen wir mehr Info: Wie sieht die Verzeichnisstruktur aus? Was sagt phpinfo() zum Thema Basedir?

          Kommentar

          Lädt...
          X