Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #6143

Re: is_dir true from cli, false from Apache

From Robert Heller <heller@deepsoft.com>
Organization Deepwoods Software
Subject Re: is_dir true from cli, false from Apache
References <4fbd1439$0$6967$c3e8da3$9b4ff22a@news.astraweb.com> <jpj5mc$33d$1@dont-email.me> <4fbd1d46$0$10768$c3e8da3$dbd57e7@news.astraweb.com> <jpj8rs$ovn$1@dont-email.me>
Newsgroups comp.lang.php
Message-ID <pMidnT1HJLR7qiDSnZ2dnUVZ_oOdnZ2d@posted.localnet> (permalink)
Date 2012-05-23 14:17 -0500

Show all headers | View raw


At Wed, 23 May 2012 14:04:37 -0400 Jerry Stuckle <jstucklex@attglobal.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@deepsoft.com
Deepwoods Software        -- http://www.deepsoft.com/
()  ascii ribbon campaign -- against html e-mail
/\  www.asciiribbon.org   -- against proprietary attachments

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

is_dir true from cli, false from Apache Robert Grimm <robertgrimm@gmail.com> - 2012-05-23 12:45 -0400
  Re: is_dir true from cli, false from Apache Jerry Stuckle <jstucklex@attglobal.net> - 2012-05-23 13:10 -0400
    Re: is_dir true from cli, false from Apache Robert Grimm <robertgrimm@gmail.com> - 2012-05-23 13:24 -0400
      Re: is_dir true from cli, false from Apache Jerry Stuckle <jstucklex@attglobal.net> - 2012-05-23 14:04 -0400
        Re: is_dir true from cli, false from Apache Robert Heller <heller@deepsoft.com> - 2012-05-23 14:17 -0500
          Re: is_dir true from cli, false from Apache Jerry Stuckle <jstucklex@attglobal.net> - 2012-05-23 16:13 -0400
          Re: is_dir true from cli, false from Apache Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-05-23 22:39 +0200
          Re: is_dir true from cli, false from Apache Robert Grimm <robertgrimm@gmail.com> - 2012-05-23 16:44 -0400
            Re: is_dir true from cli, false from Apache Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-05-24 00:25 +0200
              Re: is_dir true from cli, false from Apache Robert Grimm <robertgrimm@gmail.com> - 2012-05-23 20:03 -0400
        Re: is_dir true from cli, false from Apache Robert Grimm <robertgrimm@gmail.com> - 2012-05-23 16:48 -0400
          Re: is_dir true from cli, false from Apache Robert Grimm <robertgrimm@gmail.com> - 2012-05-23 21:15 -0400
  Re: is_dir true from cli, false from Apache The Natural Philosopher <tnp@invalid.invalid> - 2012-05-23 19:55 +0100
    Re: is_dir true from cli, false from Apache Michael Fesser <netizen@gmx.de> - 2012-05-23 22:35 +0200

csiph-web