open_basedir bei php ändern

stefan-becker

New Member
Hallo,

wo kann ich bei meinerm vServer unter Plesk das open_basedir bei php einstellen? In der php.ini? Und wenn ja in welche und kann ich für jeden Kunden eine eigene php.ini anlegen?

Stefan
 
In der Datei
Code:
/var/www/vhosts/domain/conf/vhost.conf
kannst Du mittels
Code:
php_admin_value open_basedir [Verzeichnis(se)]
jeweils benutzerdefinierte Einträge vornehmen.

Nicht vergessen die Configs neu zu laden
Code:
/usr/local/psa/admin/bin/websrvmng --reconfigure-vhost --vhost-name=<domain_name>
 
In dem Verzeichnis /var/www/vhosts/domain/conf/ gibt es nur die httpd.include. Dort wird auch auf die vhost.con verwiesen, aber diese Datei gibt es in dem Verzeichnis.

find / -name vhost.conf

Wirft auch keine Ort aus?! Aber die Datei muss es ja geben, denn wie wird sonst die httpd.conf erstellt??

Stefan
 
Ok meine vhost.conf sieht jetzt so aus:
Code:
php_admin_value open_basedir /var/www/vhosts:/tmp

Dann habe ich die Konfiguration neu gestartet:
Code:
/usr/local/psa/admin/bin/websrvmng --reconfigure-vhost --vhost-name=test.de

Leider zeigt phpinfo() immer noch die gleichen Beschränkungen an?!
 
Hallo!
Und wieso nicht?
Weil unterhalb von /var/www/vhosts/ die Kundendomains liegen (/var/www/vhosts/domain1.tld /var/www/vhosts/domain2.tld). Du kannst dir jetzt selbst ausmalen, was passieren würde, wenn open_basedir für den Kunden mit der Domain domain2.tld auf /var/www/vhosts/ stehen würde.

mfG
Thorsten
 
Hallo!

Weil unterhalb von /var/www/vhosts/ die Kundendomains liegen (/var/www/vhosts/domain1.tld /var/www/vhosts/domain2.tld). Du kannst dir jetzt selbst ausmalen, was passieren würde, wenn open_basedir für den Kunden mit der Domain domain2.tld auf /var/www/vhosts/ stehen würde.



Ok, aus Sicherheitsgründen verständlich. Aber die Domain verwende ich ja. Ich möchte meine .htpasswd außerhalb des Apache Bereichs bringen..

Stefan
 
Wenn Dein Apache richtig konfiguriert ist, ist das relativ Banane, wo die Datei liegt. Open Basedir von Apache hat damit wirklich erstmal gar nichts zu tun.

Schau mal hier vorbei.
 
Wie marneus schon gesagt hat, ich würde nicht /var/www/vhosts/ als open_basedir freigeben wenn du vor hast auch noch Domains von anderen Leuten zu hosten.

Das mit der Passwortdatei ist relativ einfach. Du musst sie einfach unterhalb des "httpdocs" Verzeichnisses ablegen.

Ein kleiner Nachtrag noch zu der vhost.conf. Es gibt übrigends auch eine vhost_ssl.conf (für SSL Verbindungen). Vielleicht hilft dir mein FAQ Eintrag BLK IT Solutions FAQ - vhost.conf und vhost_ssl.conf ein wenig weiter. Die FAQ Einträge sind aber für Debiansysteme ausgelegt und die Pfadangaben können sich bei dir unterscheiden.

Gruss,
Dawn
 
Das mit der Passwortdatei ist relativ einfach. Du musst sie einfach unterhalb des "httpdocs" Verzeichnisses ablegen.

Muss das so sein oder ist das eine Empfehlung? Ich möchte ja für domain1.tld und domain2.tld die gleiche htpasswd verwenden.
 
Das geht aber nicht so ohne weiteres. PHP hat nämlich erstmal nichts mit der .htpasswd zu tun. Eine Möglichkeit wäre, ein PHP Script so zu schreiben, dass es Schreiboperationen in beiden .htpasswd vornimmt. Das wird aber nicht so ohne weiteres möglich sein.
 
Diese Skript existiert ja bereits ;-)

Ich habe halt momentan nur das Problem mit dem openbase beschränkung. Dieses möchte ich ja in diesen beiden Projekt so hinbiegen, dass ich auf /var/www/vhost/zugangsdaten zugreifen kann. Wenn ich das könnte, wäre es super
 
Warum erstellst du nicht einen Ordner unterhalb deines DocRoot's und gibst diesen per open_basedir für die User, die an den einzelnen Projekten arbeiten, frei. Darin legst du lediglich deine .htpasswd und sonst nix weiter.

open_basedir = /srv/www/htdocs/webX/:/srv/www/htdocs/Ordner mit .htpasswd/

In deiner .htaccess kannst du doch den Pfad zu deiner .htpasswd angeben und Dank der open_basedir kannst du auf diesen extra Ordner zugreifen?

AuthUserFile /home/domain-de/der/pfad/zu/.htpasswd


cu
Sundriver
 
Last edited by a moderator:
Back
Top