Re: Permission denied when executing 'copy' command inaPHPscript
| From: | Edward Diener | Date: | Tue, 16 Sep 2008 01:57:26 +0000 |
| Subject: | Re: Permission denied when executing 'copy' command inaPHPscript | ||
| References: | 1 2 3 4 5 6 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-280249@lists.php.net to get a copy of this message | ||
Ashley Sheridan wrote:
On Mon, 2008-09-15 at 18:27 -0400, Edward Diener wrote:Your suggestion worked without any problems, although it is inherently dangerous. I am guessing that somehow the ownership of the directory was changed. However I have another surmise, based on this question: if the ownership of the PHP script itself changed, could that affect the script's ability to write to the directory ? I am able to create the PHP file in a number of ways through the online interface ( new file, copy, move etc. ) but I can not see what ownership is given to the file via the online user interface. My thought was that I had somehow 'updated' the original PHP file which was working correctly against the aforesaid directory using the online interface differently than I had used it before and this somehow changed the ownership setting ( user and group ) of the PHP file itself, and that this may have caused the attempt to write to the directory to fail.Ashley Sheridan wrote:Unfortunately then the only thing to do in this case is to give the directory 777 permissions allowing it to be written to by any user. It's not ideal, but it is the only way which will let you write to it.On Mon, 2008-09-15 at 17:47 -0400, Edward Diener wrote:Agreed, but see my other reply.b wrote:Make sure that apache can write to that directory though. You may need to make apache the owner of the directoryEdward Diener wrote:OK, thanks for pointing this out.In a PHP file upload script which looks like: $htmlplace="aplace"; if ($_FILES['HtmlFile']['name'] != "") {You should take a look at is_uploaded_file() and move_uploaded_file().$filenamex = basename($_FILES['HtmlFile']['name']); copy($_FILES['HtmlFile']['tmp_name'],$htmlplace."/".$filenamex);}The directory perms of the 'to' directory ? It is 755.I am getting the error message: <br /> <b>Warning</b>: copy(aplace/ahtml.html) [<a href='function.copy'>function.copy</a>]: failed to open stream: Permission denied in <b>/home/directory/anotherdirectory/makecopy2.php</b> on line <b>6</b><br /> This was working perfectly before so I am at a loss as to why it is now failing. Does anybody have any idea what could be happening and what the Permission denied refers to and means ? Thanks !It means that the web server has been denied permission by the OS. Check that the directory perms are properly set.You might also want to use a full directory path (ie. from the root of the server) for the location the file should be saved to.I do not think I can know this from my PHP script.