使用PHP写入目录:这是权限问题吗?

Abs*_*Abs 1 php linux apache permissions file

我的PHP脚本写入文件,以便它可以创建一个jpg图像.

fwrite($handle, $GLOBALS['HTTP_RAW_POST_DATA']);
fclose($handle);    
print $newfile.'.jpg';
Run Code Online (Sandbox Code Playgroud)

我已将此脚本放在新服务器上,但图像永远不会被保存.它保存的文件夹的权限是755,但它不拥有它.上次,我认为我通过将目录所有者更改为apache来修复此问题,因为这是PHP运行的.我不能再这样做因为我不是根.

首先,是否有其他修复?其次,如果我可以像上次那样更改目录的所有者,这将解决问题吗?

谢谢大家的帮助

var*_*tec 8

  1. 将文件夹的权限更改为777(rwxrwxrwx)
  2. 从PHP创建子目录与mkdir
  3. 将目录权限更改回755(rwxr-xr-x)甚至更好711(rwx--x--x)
  4. 从现在起将图像保存在子目录中,该子目录现在由www-data(或Apache使用的任何用户)拥有.

BTW.你可以减少以下代码:

fopen($newfile.'.jpg','wb');
fwrite($handle, $GLOBALS['HTTP_RAW_POST_DATA']);
fclose($handle);    
print $newfile.'.jpg';
Run Code Online (Sandbox Code Playgroud)

至:

file_put_contents($newfile.'.jpg', 
                  file_get_contents('php://input', 
                                      FILE_BINARY), 
                  FILE_BINARY)
Run Code Online (Sandbox Code Playgroud)