Re: Problem with PHP and mounted folder
| From: | Aziz Saleh | Date: | Fri, 28 Feb 2014 20:50:15 +0000 |
| Subject: | Re: Problem with PHP and mounted folder | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-323010@lists.php.net to get a copy of this message | ||
On Fri, Feb 28, 2014 at 3:43 PM, Cliff Nieuwenhuis <
c.nieuwenhuis@adcidesign.com> wrote:
> From: Aziz Saleh [mailto:azizsaleh@gmail.com]
> Sent: Friday, February 28, 2014 1:41 PM
> To: Cliff Nieuwenhuis
> Cc: php-general@lists.php.net
> Subject: Re: [PHP] Problem with PHP and mounted folder
>
> r
>
> On Fri, Feb 28, 2014 at 1:00 PM, Cliff Nieuwenhuis <
> c.nieuwenhuis@adcidesign.com> wrote:
>
> Cliff Nieuwenhuis wrote:
> [snip]
>
> > The web application needs to read and create files in the projects
> folder, but
> > PHP doesn't recognize the projects folder as folder! I suspect a
> > permissions problem of some sort, but I can't figure out where.
>
> [snip]
>
> Aziz Saleh wrote:
>
> > You guessed right. PHP usually runs under a user with less permissions
> (www, user, etc..). You are probably
> > logged in as a user with permissions to access that mounted drive while
> PHP isn't. Both fixes are ugly, but
> > what I would recommend is giving permission to those files as opposed to
> giving PHP user more power.
>
> Thanks for the reply.
>
> I thought that PHP runs under HTTPD as user 'apache'. I know that the
> Apache webserver runs as user 'apache' on my system -- does PHP run as a
> different user? Assuming that it does not, wouldn't my successful test of
> traversing, reading, and writing files under the 'projects' folder by doing
> 'su - apache -s/bin/bash' mean that the permissions are OK? I guess not,
> but I can't see why not.
>
> --
> Cliff Nieuwenhuis
>
> You are correct, when I said PHP I meant through the server. Try using
> runuser command instead. If you have exec enabled, try running an ls
> command as a user with higher permissions and see if that works.
>
>
> OK -- tried with runuser. I can see all the projects in the projects
> folder, and I can edit files that I should be able to edit (those files
> that can be edited by the Windows user account given in the credentials
> file that is used by mount.cifs). But I can't descend into the projects
> folder via PHP.
>
> If I browse to http://myserver/projects I see Apache's
> listing of all the
> subfolders and files. If I click on a test text (test.txt) file in that
> list, I see the text file contents in the browser.
>
> If I write php code like this:
>
> $contents = file_get_contents('projects/test.txt');
> echo "Contents: $contents";
>
> ..it works; the contents are displayed. BUT is_file('projects/test.txt')
> will return FALSE.
>
>
>
Does file_exists work? is_file will return false if the user doesn't have
permission on the parent directory.