在PHP中更改所有者/组ID

时间:2012-03-08 08:39:47

标签: php file-ownership

在我的客户端的ftp中,旧文件在所有者/组列中具有3002 3000值。

但是当我上传新页面时,它有3002 3002,我无法访问此文件。

当我尝试加载此新页面时,会显示错误:

  

NetworkError:500内部服务器错误

为什么会这样?

如果有任何PHP代码将3002 3002更改为3002 3000

如何更改所有者/组值?我可以使用任何PHP代码更改所有者/组ID吗?

我已经使用了chown()函数,但ftp中的所有者/组列值仍然没有显示3002 3002

4 个答案:

答案 0 :(得分:2)

<?php

// File name and username to use
$file_name= "test.php";
$path = "/home/sites/public_html/login/" . $file_name ;
$user_name = "root";

// Set the user
chown($path, $user_name);

// Check the result
$stat = stat($path);
print_r(posix_getpwuid($stat['uid']));

?>

它将返回如下内容: -

Array
(
    [name] => root
    [passwd] => x
    [uid] => 0
    [gid] => 0
    [gecos] => root
    [dir] => /root
    [shell] => /bin/bash
)

更改文件组: -

  <?php
     $filename = 'file.txt';
     $format = "%s's Group ID @ %s: %d\n";
     printf($format, $filename, date('r'), filegroup($filename));
     chgrp($filename, 8);
     clearstatcache(); // do not cache filegroup() results
     printf($format, $filename, date('r'), filegroup($filename));
  ?>

答案 1 :(得分:1)

使用chown()更改文件的所有者。

答案 2 :(得分:1)

答案 3 :(得分:1)

  

当我尝试加载这个新页面时,它会显示错误:

为什么要尝试更改文件的所有者和组?这个错误实际上是在其他地方吗?尝试检查日志以查看错误“500”的含义。如果您移动了服务器,那么所有者和组可能不是唯一的问题,可能是某些PHP模块尚未编译,而您依赖它们。

权限问题实际上可能会产生403 Forbidden,而不是500内部服务器错误。再次,检查您的日志以找出实际出错的地方。