使用PHP复制文件时,请保留文件权限和所有者


Keep file permission and owner when copying file with PHP

使用PHP复制文件时,如何保留文件权限和所有者?

复制文件的代码:

$source = CSS . 'customers' . DS . 'source.css';
$destination = CSS . 'customers' . DS . 'destination.css';
if(!@copy($source, $destination)) {
    $errors= error_get_last();
    echo "COPY ERROR: ".$errors['type'];
    echo "<br />'n".$errors['message'];
}

输出:

-rwxrwxrwx    1 myuser  admin  7145 11 Nov 20:02 source.css
-rw-r--r--    1 daemon  admin  7145 19 Nov 16:27 destination.css

只有admin/root才能更改文件的所有者。

  • Apache作为用户Apache或守护进程运行,并且不能更改所有权
  • 以用户身份运行的CLI程序无法更改所有者
  • 以root身份运行的CLI程序可以更改所有者

您可以将文件权限设置为可由组或所有用户读取。

exec( 'chmod 664 ' . $filename );  // Group only
exec( 'chmod 666 ' . $filename );  // All users

文件名是带有路径或相对于脚本路径的绝对文件名!