|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-02-14 04:03 UTC] root at mediamonks dot net
I have this in my php.ini as default:
open_basedir = /var/www
I have a virtualhost block like this:
<VirtualHost 192.168.0.1>
ServerName "host.example.com"
DocumentRoot "/var/www/host.example.com/root"
<Directory "/var/www/host.example.com/root/admin">
Options Indexes ExecCgi
php_admin_value safe_mode 0
php_admin_value open_basedir "/"
</Directory>
</VirtualHost>
The goal is to force a default open_basedir of "/var/www" to everything, except the explicitly specified /admin directory and contents (same with safe_mode).
First, I read that setting the open_basedir to "/" doesn't work anymore in http://bugs.php.net/bug.php?id=22101. Seems kinda weird as the documentation states:
[The restriction specified with open_basedir is actually a prefix, not a directory name. This means that "open_basedir = /dir/incl" also allows access to "/dir/include" and "/dir/incls" if they exist. When you want to restrict access to only the specified directory, end with a slash. For example: "open_basedir = /dir/incl/"]
But besides that, specifying 'none' as open basedir in the virtualhost doesn't turn it off, it uses the default of /var/www, and I haven't found a way to set the open_basedir to NULL.
So, as I see it either the 'none' setting isn't working correctly and needs to be fixed or the possibility of setting the open_basedir to "/" needs to be put back in.
Unless I'm overseeing some very trivial way of turning the open_basedir restriction off of course.
Thanks in advance.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 18:00:01 2025 UTC |
Actually, I added a comment to 19292 about my problem and it was deleted as not being appropriate there. I am not having trouble with random open_basedir errors, I'm having one simple problem. I have a default open_basedir of '/var/www/' in my php.ini and I used to turn off ('allow all files to be opened') for a particular vhost by setting open_basedir to '/'. Whether this wastes resources I don't know and actually I don't care too, because it does what I want. Starting with 4.3.0 I can't use '/' as open_basedir anymore for some reason, and imo it wasn't thought about properly because it creates contradictory error messages like: [Warning: Unknown(): open_basedir restriction in effect. File(/var/www/host.example.com/root/admin/phpinfo.php) is not within the allowed path(s): (/) in Unknown on line 0] But I couldn't care less if there was an equivalent for setting open_basedir to '/'. Because all I need is to turn off open_basedir for a particular vhost. And I tried setting open_basedir to none, 'none' and "none", but this just leaves the default of '/var/www' in effect. So I'm guessing that the 'none' setting isn't working properly as I would think that it should turn off the open_basedir restriction for the vhost.