open_basedir & session.save_path Problem

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von Tekagi, 25. Apr. 2010.

  1. Tekagi

    Tekagi New Member

    Hallo liebe Community,
    ich habe leider 2 Probleme:
    Ich habe ispconfig3 und bis auf PHP funktioniert alles perfekt.

    Sofern ich FCGI,CGI,mod_php verwende bekomm ich eine restriction wegen open_basedir, die ich nicht ganz nachfolziehen kann.
    Code:
    [Sun Apr 25 12:46:45 2010] [error] [client 91.57.000.000] PHP Warning:  require(): open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/clients/client2/web2/web:/var/www/clients/client2/web2/tmp:/var/www/hlstatsx1.xxx.net/web:/srv/www/hlstatsx1.xxx.net/web:/usr/share/php5:/tmp:/usr/share/phpmyadmin) in /var/www/clients/client2/web2/web/hlstats.php on line 40
    [Sun Apr 25 12:46:45 2010] [error] [client 91.57.000.000] PHP Fatal error:  Can't load config.php, open_basedir restriction. in /var/www/clients/client2/web2/web/hlstats.php on line 40
    
    Und zwar versuche ich HLstatsx zum laufen zu bekommen.
    die Datei hlstats.php versicht via require() die config.php einzubinden. Diese leigt im selben Verzeichnis wie die hlstats.php (/var/www/clients/client2/web2/web; /var/www/hlstatsx1.xxx.net/web (link))

    Aber auch bei einzelnen PHP-Dateien kommt es zu diesem error

    Code:
    [Sun Apr 25 14:11:31 2010] [error] [client 91.57.000.000] PHP Warning:  Unknown: open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/clients/client0/web3/web:/var/www/clients/client0/web3/tmp:/var/www/signatur.xxx.net/web:/srv/www/signatur.xxx.net/web:/usr/share/php5:/tmp:/usr/share/phpmyadmin) in Unknown on line 0
    [Sun Apr 25 14:11:31 2010] [error] [client 91.57.000.000] PHP Fatal error:  Can't load /var/www/xxx.net/web/view.php, open_basedir restriction. in Unknown on line 0
    
    Aber sind die Dateien nicht innerhalb der "allowed paths" ?
    So wie ich das sehe schon.


    2. Problem:
    Wenn ich suPHP nutze, liegt der session.save_path auf /var/lib/php/session und des gibt einen Zugriffsfehler.
    Kann man nicht für jeden Client den session path auf sein Verzeichnis (/var/www/client0/web1/tmp) setzen? php_admin_value ist ja bei suphp nicht möglich,
    sonst könnte man es ja in die vhosts-master-config schreiben.
    Oder gibt es keine bedenken den chmod von /var/lib/php/session auf 777 zu setzen wie es einige im Internet raten?

    EDIT: OS ist Fedora 12 SELinux disabled

    Ich hoffe ihr könnt mir helfen.

    Schönen Sonntag noch
     
    Zuletzt bearbeitet: 25. Apr. 2010
  2. Till

    Till Administrator

    Zu 1) Sieht nach eime Fehler im include_path der php.ini aus. Schau mal bitte in die php.ini die für cgi dateien da ist, der Include path sollte in etwa so aussehen:

    include_path = ".:/usr/share/php"

    wichtig ist das .: am Anfang, sonst kann er keine Dateien mit einem relativen Pfad includen.

    zu 2:

    chmod 777 /var/lib/php/session
     
  3. Tekagi

    Tekagi New Member

    Ich habe nur 1 php.ini (/etc/php.ini).
    Der include_path war auskommentiert.
    Hab ich jetzt gesetzt, funktoniert aber immer noch nicht ->selber Fehler

    Edit:
    Aber include_path ist doch nur für Sachen die eingebunden werden oder?
    Weil der Fehler (open_basedir restriction) tritt ja schon auf, wenn nur ein
    PHP:
    <?php phpinfo(); ?>
    in der aufzurufenden Datei steht.
     
    Zuletzt bearbeitet: 25. Apr. 2010
  4. Till

    Till Administrator

    Hast Du auch den apache neu gestartet?

    Poste bitte mal die Ausgabe von:

    ls -la /var/www/clients/client2/web2/web/
     
  5. Tekagi

    Tekagi New Member

    Apache schon mehrere Male neugestartet.

    Ausgabe wie folgt:

    Code:
    drwx--x---.  9 web2 client2  4096 25. Apr 11:53 .
    drwxr-x--x.  6 web2 client2  4096 25. Apr 11:42 ..
    -rw-r--r--.  1 web2 client2  1036 25. Apr 11:45 autocomplete.php
    -rw-r--r--.  1 web2 client2  3781 25. Apr 11:52 config.php
    drwxr-xr-x.  2 web2 client2  4096 25. Apr 11:45 css
    drwxr-xr-x.  2 web2 client2  4096 25. Apr 11:42 error
    -rw-r--r--.  1 web2 client2  1406 25. Apr 11:45 favicon.ico
    -rw-r--r--.  1 web2 client2  1309 25. Apr 11:45 hlstats.css
    drwxr-xr-x. 12 web2 client2  4096 25. Apr 11:46 hlstatsimg
    -rw-r--r--.  1 web2 client2  5947 25. Apr 11:45 hlstats.php
    drwxr-xr-x.  3 web2 client2  4096 25. Apr 11:49 includes
    -rw-r--r--.  1 web2 client2    40 25. Apr 11:45 index.php
    -rw-r--r--.  1 web2 client2  4048 25. Apr 11:45 ingame.php
    drwxr-xr-x.  5 web2 client2  4096 25. Apr 11:49 pages
    -rw-r--r--.  1 web2 client2 21131 25. Apr 11:49 show_graph.php
    -rw-r--r--.  1 web2 client2 16137 25. Apr 11:49 sig.php
    drwxr-xr-x.  2 root root     4096 25. Apr 11:42 stats
    -rw-r--r--.  1 web2 client2 19625 25. Apr 11:49 status.php
    drwxr-xr-x.  3 web2 client2  4096 25. Apr 11:49 styles
    
    
    stats sind vom webalizer

    Bei suPHP geht es, denn open_basedir ist nicht gesetzt.
    Ist dies bei einem virtuellen Hosting überhaupt "sicher"?
     
    Zuletzt bearbeitet: 25. Apr. 2010
  6. Till

    Till Administrator

    Das kann an sich nicht sein, da es sich bei Openbasedir immer um das includen von externen Dateien geht. Wenn Du das schon bei einer simplen phpinfo datei hast, dann ist vielleicht dochselinux nicht ganz deaktiviert.

    1) Wiederhole bitte nochnal die Schritte zum deaktivieren von selinux aus dem Tutorial.
    2) prüfe nochmal, ob der open_basdir path und der dateipfad stimmen, also dass der dateipfad wirklich innerhalb des openBasedir Pfades liegt.
    3) Poste bitte mal Zeile nr. 40 der Datei /var/www/clients/client2/web2/web/hlstats.php
     
  7. planet_fox

    planet_fox Super-Moderator

    @Till den Ordner gibts nicht

    Der Ordner sollte unter Debian so heißen

    Code:
    chmod 777 /var/lib/php5/session
    es kommt auf die php version an und die Distribution daher ist Tills antwort nicht unbedingt falsch. Ich gehe hier jetzt von einem Debian aus unter Redhat oder Suse kann es diesen Ordner möglicherweise geben
     
  8. Tekagi

    Tekagi New Member

    1.
    selinux ist deaktiviert.
    auch schon neugestartet

    2.
    liegt im openbasedir

    3.
    PHP:
    require('config.php');
    Ich habe auf meinem Laptop nun Fedora 12 installiert (vorher Windoof), und da funktioniert alles ohne Probleme, nur halt auf meinem Test-Server nicht! Ich hab sogar schon alle Konfig-Files syncronisiert.
    Ich möchte jetzt nicht alles auf das Produktivsystem machen, und dann funktioniert es nicht, daher teste ich eigentlich auch immer.

    @planet_fox
    Ich verwende Fedora 12 wie im ersten Post beschrieben :rolleyes:.
    Also stimmt schon was Till sagt :cool:.
     
  9. Till

    Till Administrator

    Dazu fällt mir im Moment auch nichts weiter ein.
     

Diese Seite empfehlen