我试图将文件上传到PHP通过我自己的服务器。如果文件夹不存在,首先我尝试创建文件夹;
mkdir($folder, 0700);
我的脚本正在创建文件夹,但apache是文件夹(和文件)的所有者,所以我无法访问我上传的文件。
我在我的服务器中关闭了safe_mode。我仍然无法找到解决这个问题的方法。
如果有人能帮我解决这个问题,我会很高兴。
注意: 我试过0755,0777不会改变任何东西。 Apache是创建的文件夹的所有者。
我试图将文件上传到PHP通过我自己的服务器。如果文件夹不存在,首先我尝试创建文件夹;
mkdir($folder, 0700);
我的脚本正在创建文件夹,但apache是文件夹(和文件)的所有者,所以我无法访问我上传的文件。
我在我的服务器中关闭了safe_mode。我仍然无法找到解决这个问题的方法。
如果有人能帮我解决这个问题,我会很高兴。
注意: 我试过0755,0777不会改变任何东西。 Apache是创建的文件夹的所有者。
当然。上传目录必须是可写的other
/访问,即:XX7:
// fill APPPATH with a suitable directoy name
if (! file_exists(APPPATH . 'uploads'))
{
mkdir(APPPATH . 'uploads', 0757, TRUE);
}
7: owner permissions, ie: rwx
5: group permissions, ie: rx
7: other permissions, ie: rwx
它创建文件夹,我没有问题。问题是apache是文件夹的所有者。 – Revenant 2012-01-05 18:48:36
是的,apache也是上传文件的所有者。只需使目录/文件夹可写并可由其他用户访问。 – 2012-01-05 18:53:14
如果这不起作用,我认为问题必须在脚本的另一部分。你如何访问上传的文件? – 2012-01-05 18:57:52
你为什么要摆在首位设置权限,700? 755将允许“任何人”阅读您的文件和文件夹,并且在大多数情况下,它实际上是可以接受的。
更新我的问题。我尝试了755,777没有成功。 Apache是每个创建的文件夹的所有者。 – Revenant 2012-01-05 18:50:21
下面的代码段创建的权限777(或任何指定的权限),目录:
$oldumask = umask(0);
mkdir($path, 0777);
umask($oldumask);
权限700是非常严格的。在* only *中,所有者可以对目录执行任何操作。所以你所描述的是预期的。 – 2012-01-05 18:34:23
你有没有检出http://stackoverflow.com/questions/2560762/php-mkdir-and-apache-ownership? – j08691 2012-01-05 18:35:42
@ j08691;是的,我检查了所有。正如我所提到的,safe_mode已关闭。 @Jason McCreary,即使我改变权限,没有任何变化,仍然'apache'是文件夹的所有者。 – Revenant 2012-01-05 18:37:39