Re: is_dir true from cli, false from Apache [message #178224 is a reply to message #178223] |
Wed, 23 May 2012 20:13 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 5/23/2012 3:17 PM, Robert Heller wrote:
> At Wed, 23 May 2012 14:04:37 -0400 Jerry Stuckle<jstucklex(at)attglobal(dot)net> wrote:
>
>>
>> On 5/23/2012 1:24 PM, Robert Grimm wrote:
>>> On 2012-05-23 17:10:31 +0000, Jerry Stuckle said:
>>>
>>>> On 5/23/2012 12:45 PM, Robert Grimm wrote:
>>>> > I'm having trouble on CentOS 6 with PHP5. This is my test code:
>>>> >
>>>> > $dir = is_dir("/var/www/document_repository");
>>>> >
>>>> > Ultimately, I'm trying to get OpenDocMan working. That this test code
>>>> > fails shows why I can't get OpenDocMan working. I've tried everything I
>>>> > can think of. I've added a trailing /. I've put the directory in and out
>>>> > of the OpenDocMan directory, which has a directory definition in the
>>>> > Apache config. The user apache owns and has full access to the
>>>> > directory. I tested to make sure PHP was being run by apache with
>>>> > passthru("whoami");
>>>> >
>>>> > I posted my site configuration and phpinfo() output at
>>>> > http://opendocman.com/forum/viewtopic.php?f=4&t=667 in the last post on
>>>> > the page as of right now.
>>>> >
>>>> > What is really strange is that my test code works when I run it from the
>>>> > command line.
>>>> >
>>>> > This is a recent, clean install of CentOS. I have done no customization
>>>> > of the configuration files beyond defining the site in Apache. The site
>>>> > configuration has no PHP directives, as can be seen in the forum post
>>>> > linked above. What is going on? What do I have to do to get this
>>>> > working?
>>>> >
>>>>
>>>> Does the web server's user have access to the directory?
>>>
>>> The web server's user has ownership and read, write, and execute
>>> permissions on that directory.
>>
>> OK, but IIRC, CentOS uses SELinux security contexts. Is that set up to
>> allow access to the directory (warning - I know very little about how
>> SELinux security works - just that it causes hassles like this).
>
> There is also the possiblity that the apache (most likely) and/or php
> configuration might prevent a php web application from accessing disk
> space outside of under DOCUMENT_ROOT. The base default DocumentRoot
> for a CentOS install of apache (httpd rpm) is /var/www/html and
> /var/www/document_repository is outside of that directory... I am not
> sure if this is an apache or php configuration. I *suspect* that the
> default is to disallow a php program running under apache's PHP_MOD
> from accessing files, unless apache is allowing it. By default apache
> disallows access to the root file system (from httpd.conf):
>
When accessing the file system from PHP, Apache is not involved at all,
and its configuration is immaterial.
> #
> # Each directory to which Apache has access can be configured with respect
> # to which services and features are allowed and/or disabled in that
> # directory (and its subdirectories).
> #
> # First, we configure the "default" to be a very restrictive set of
> # features.
> #
> <Directory />
> Options FollowSymLinks
> AllowOverride None
> </Directory>
>
> (This directive is followed by others granting various sorts of access
> to selected directories.)
>
> This is a sensible securirty setting. You might have to add the
> necessary 'magic' to httpd.conf or add a config file to
> /etc/httpd/conf.d to allow access to /var/www/document_repository, with
> a suitable<Directory /var/www/document_repository>...</Directory>
> container.
>
>>
>
And unrelated to this problem. Actually, since the directory is outside
of the DOCUMENT_ROOT, this isn't even necessary (and has no effect).
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|