【问题标题】:php apache file ownership and creation problemphp apache文件所有权和创建问题
【发布时间】:2011-07-29 08:29:24
【问题描述】:

我正在尝试在我的代码中将文件重命名为另一个名称。然而,似乎有一些所有权/权限问题阻止了它正常工作。

这是我的(简化的)代码:

ini_set ("display_errors", "1");
error_reporting(E_ALL);

$St_Num = '7940';
$Co_Code = 'RDCO2';

rename("$St_Num-$Co_Code-1.jpg", "$St_Num-$Co_Code-4.jpg");

这些是我尝试更改的文件的权限:

代码:

-rw-r--r-- 1 apache dev   4065 Oct 22 17:57 7940-RDCO2-3.jpg
-rw-r--r-- 1 apache dev   4276 Oct 28 09:39 7940-RDCO2-2.jpg
-rw-r--r-- 1 apache dev   4336 Oct 28 09:39 7940-RDCO2-1.jpg

这段代码可以正常工作,而且当 apache 是文件的创建者 时,它似乎也可以工作。但是,当我将所有权更改为“apache”时,它停止工作。 PHP/Apache 是否有知道文件创建者是谁的概念?这会阻止 rename() 工作吗?

我现在被这个难住了 - 感谢任何帮助。

谢谢, 皮科

【问题讨论】:

  • 对于重命名文件,要查看的权限是包含目录中的权限。请告诉我们ls -ld .的信息。

标签: php apache permissions chmod ownership


【解决方案1】:

您必须将该特定目录的读写所有权设置为public-www

【讨论】:

    【解决方案2】:

    chmod(0666)[在服务器上]给所有用户(包括apache)写权限

    【讨论】:

    • @Cristina,是的,但我看不到 OP 想要做的其他解决方案
    • Apache suexec 无需授予全局权限即可处理此问题。
    • 服务器上的 chmod 666 似乎没有任何效果。 Apache 不需要是文件的所有者,我只是在寻找一种允许 apache 用户能够重命名文件的方法。
    • 我还应该补充一点,我知道这不是代码中的错误,因为我已经看到它工作了。问题是我只是不知道允许它工作所需的权限。
    猜你喜欢
    • 1970-01-01
    • 2012-07-18
    • 2012-02-11
    • 2011-02-03
    • 2012-07-04
    • 1970-01-01
    • 2011-07-07
    • 2021-06-19
    • 1970-01-01
    相关资源
    最近更新 更多