1

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

但是当我上传一个新页面时,它有 3002 3002 并且我无法访问这个文件。

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

NetworkError:500 内部服务器错误

为什么会这样?

如果有任何 php 代码可以更改3002 30023002 3000

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

我已经使用了chown()函数,但是 ftp 中的所有者/组列值仍然显示 3002 3002 不会发生任何事情

4

4 回答 4

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));
  ?>
于 2012-03-08T08:45:40.970 回答
1

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

于 2012-03-08T08:41:31.900 回答
1
  1. chgrp() http://www.php.net/manual/en/function.chgrp.php
  2. chown() http://php.net/manual/en/function.chown.php
于 2012-03-08T08:44:32.230 回答
1

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

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

权限问题实际上可能会产生 403 Forbidden,而不是 500 Internal Server Error。再次检查您的日志以找出实际出了什么问题。

于 2012-03-08T08:50:37.113 回答