From: Aziz Saleh [mailto:azizsaleh@xxxxxxxxx] Sent: Friday, February 28, 2014 1:41 PM To: Cliff Nieuwenhuis Cc: php-general@xxxxxxxxxxxxx Subject: Re: Problem with PHP and mounted folder r On Fri, Feb 28, 2014 at 1:00 PM, Cliff Nieuwenhuis <c.nieuwenhuis@xxxxxxxxxxxxxx> 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.