Re: is_dir true from cli, false from Apache [message #178223 is a reply to message #178220] |
Wed, 23 May 2012 19:17 |
Robert Heller
Messages: 60 Registered: December 2010
Karma:
|
Member |
|
|
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):
#
# 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.
>
--
Robert Heller -- 978-544-6933 / heller(at)deepsoft(dot)com
Deepwoods Software -- http://www.deepsoft.com/
() ascii ribbon campaign -- against html e-mail
/\ www.asciiribbon.org -- against proprietary attachments
|
|
|