Includes zu anderen Domains erlauben

Dieses Thema im Forum "Server Administration" wurde erstellt von mrairbrush, 27. März 2010.

  1. mrairbrush

    mrairbrush Member

    Ich habe das Problem das ich ein anderes php Script von einer anderen Domain auf dem gleichen Server erlauben will. Die Sicherheitseinstellungen lassen es aber offensichtlich nicht zu. Wie kann ich das ändern das php Scrips von dem gelichen Server included werden dürfen.
    Safe Mode off für einzelne Domains habe ich gefunden aber hier weiß ich nicht wo, was zu ändern ist.
     
  2. Till

    Till Administrator

    Benutzt Du ispconfig? Wenn ja, welche Version?
     
  3. mrairbrush

    mrairbrush Member

    Ja benutze ISP Config. Sollte neuste VErsion sein da ich gerade erst update gemacht habe.
     
  4. Till

    Till Administrator

    Es gibt 2 neueste Versionen, 2.2.35 und 3.0.2.1. Hast Du also ISPConfig 2 oder 3 installiert?
     
  5. mrairbrush

    mrairbrush Member

    benutze
    3.0.21
     
  6. Till

    Till Administrator

    Dann kannst Du den Pfad zu der anderen Website unter Optionen im OpenBasedir Feld hinzufügen. Mehere Pfaede werden durch : getrennt.
     
  7. mrairbrush

    mrairbrush Member

    ist dann ein zusätzlicher oder ein genereller Eintrag? Damit meine ich sind die includes innerhalb einer Domain immer frei oder muss ich die dann alle dazuschreiben?
    Welche Domain von welcher includen darf?
     
  8. mrairbrush

    mrairbrush Member

    include() [function.include]: URL file-access is disabled in the server configuration in

    eine Änderung in der php_ini

    safe_mode_include_dir = /var/www/clients/client3/web4/web:/var/www/clients/client1/web6/web
    und
    open_basedir = /var/www/clients/client3/web4/web:/var/www/clients/client1/web6/web


    brachte auch nichts

    Hängt das mit safe_mode_gid = zusammen?
     
    Zuletzt bearbeitet: 22. Juni 2010
  9. Till

    Till Administrator

    URL access hat aber nichts mit open vbasedir zu tun, sondern mit dem URL access. Heißt glaube ich url fopen wrapper oder so in der php.ini.

    Diese Funktion ist aber sicherheitstechnisch etwas heikel, da sie beim kleinsten Fehler in einem der PHP scripte das Nachladen von externem Schadcode ermöglicht. Du solltest Dir also nochmal überlegen ob Du das wirklich machen willst.
     
  10. mrairbrush

    mrairbrush Member

    Welche Möglichkeit habe ich um ein script von Domain A auf Domain B aufzurufen?
    Oder gibt es eine generelle Möglichkeit das Scripte Serverbezogen aufzurufen sind. Dann wäre das nachladen von ausserhalb ja nicht möglich.
     
  11. Till

    Till Administrator

    Schau mal in der php Doku unter "include" nach.
     
  12. mrairbrush

    mrairbrush Member

    Habe ich gerade gemacht, bisher aber keine Lösung gefunden.
     
  13. Till

    Till Administrator

    Was genau willst Du denn includen? Eine externe URL oder eine lokale Datei und soll dann der Inhalt als PHP code interpretiert werden oder aber z.b. als html oder xml Content verwendet werden?
     
  14. mrairbrush

    mrairbrush Member

    Nur eine php Datei auf einer anderen Domain (gleicher Server) aufrufen.
    Gibt es keine Einstellungen die das explizit von Domains auf den selben Server z.b. über die IP zuläßt? Das wäre die einfachste Lösung.
     
  15. nowayback

    nowayback Well-Known Member

    Moinsen,

    evtl hilft dir das:
    PHP:
    $remotefile "http://www.path.to/filename.php";

    $fh fopen($remotefile'r'); 
    $inhalt fread($fhfilesize($remotefile)); 
    fclose($fh); 

    echo 
    $inhalt;
    PHP: fopen - Manual

    Grüße
    nwb
     
    Zuletzt bearbeitet: 16. Okt. 2011
  16. mrairbrush

    mrairbrush Member

    Es scheitert schon an fopen oder basedir aufgrund der Sicherheitseinstellungen. Aber so wie ich mitbekommen habe kann man etwas in der phpini ändern das es zu bestimmten Domains erlaubt ist. Ich möchte jetzt aber nicht eine Domain eintragen (was bisher auch scheiterte) sondern einfach die Serverip. Nur wie?
     
  17. nowayback

    nowayback Well-Known Member

    Moinsen,

    Das erlauben auf eine bestimmte IP macht überhaupt keinen Sinn, denn unter dieser IP können ja mehrere Websites gehostet werden und den Pfad zu den Websites legt dein Webserver fest. Aber ich drück mal deine Nase direkt da drauf: open_basedir

    Du hast ja gesagt, dass das Script auf dem selben Server liegt, also sollte das funktionieren.

    Im ISP Config kannste bei PHP open_basedir in Domains direkt den Pfad mit eintragen zum anderen Verzeichnis in dem das Script liegt.



    Grüße
    nwb
     
    Zuletzt bearbeitet: 18. Okt. 2011
  18. mrairbrush

    mrairbrush Member

    Nun unter der IP sind nur meine Webseiten gehostet.
    Meinst Du unter ISP Config den Punkt System/Serverconfiguration/web/php open_basedir ?
    Da steht eine lange Zeichenkette drin

    [website_path]/web:[website_path]/tmp:/var/www/[website_domain]/web:/srv/www/[website_domain]/web:/usr/share/php5:/tmp:/usr/share/phpmyadmin
    Muss da was geändert werden?
     
  19. mrairbrush

    mrairbrush Member

    Da kriege ich noch mehr Fehler.
     
  20. nowayback

    nowayback Well-Known Member

    1. ISP Config als Admin einloggen
    2. Klicke auf Domains
    3. Klicke auf die Domain, die das Script von der anderen laden soll
    4. Klicke auf Optionen
    5. Trage bei PHP open_basedir den Pfad zu dem Verzeichnis ein, indem das Script liegt
    6. Klicke auf Speichern
    7. Warte 1 Minute bis ISP Config das übernommen hat
    8. Teste dein Script
    9. Logge dich wieder aus

    Es ist immer sehr hilfreich zu verschweigen wie die Fehlermeldungen lauten, denn nur so können die Leute, die versuchen wollen dir zu helfen, auch mal ihre Glaskugel benutzen. Leider ist meine gerade zur Politur. Gerne lass ich dich wissen wenn ich diese zurück habe.

    Solltest du Ironie in diesem Post finden, dann könnte diese beabsichtigt sein ;)

    Grüße
    nwb
     

Diese Seite empfehlen