Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP更改fopen上的默认用户_Php_Permissions_Fopen_Symfony5_Symfony Filesystem - Fatal编程技术网

PHP更改fopen上的默认用户

PHP更改fopen上的默认用户,php,permissions,fopen,symfony5,symfony-filesystem,Php,Permissions,Fopen,Symfony5,Symfony Filesystem,我在尝试使用其他用户而不是www数据编写文件时遇到问题。 我需要将文件保留在一个映射单元上,该单元不是我的,因此我无法更改该单元的权限。尽管我有一个用户名和一个组,让我们称它们为“我自己”:“我自己” 我使用symfony5文件系统来移动文件,但我仍然使用PHP的fopen来创建这些文件。这就是我目前所拥有的 private function moveAndDeleteFile($url_origin, $url_destiny) { $filesystem = new Filesyst

我在尝试使用其他用户而不是www数据编写文件时遇到问题。 我需要将文件保留在一个映射单元上,该单元不是我的,因此我无法更改该单元的权限。尽管我有一个用户名和一个组,让我们称它们为“我自己”:“我自己”

我使用symfony5文件系统来移动文件,但我仍然使用PHP的fopen来创建这些文件。这就是我目前所拥有的

private function moveAndDeleteFile($url_origin, $url_destiny)
{
    $filesystem = new Filesystem();

    $a = fopen($url_origin, 'wa+');
    fwrite($a, 'Test');
    fclose($a);

    $filesystem->copy($url_origin, $url_destino, true);

    if (!$filesystem->exists($url_destiny)) {
        return false;
    }
    $filesystem->remove($url_origin);

    return true;
}
这只是一个测试,所以我正在创建一个文件(名称包含在$url\u origin中),并尝试将该文件复制到$url\u destiny,然后删除原始文件(同样,只是一个测试)

关键是文件总是由www数据创建的,对于我的目标目录,我需要将文件所有者设置为“我自己”

有没有办法用sudo更改文件所有者

$filesystem->chown($url_origin, 'myself', false);
这将返回一个错误->无法打开文件“my/route/file.xml”

尝试时也会发生同样的事情

$filesystem->chgrp($url_origin, 'myself', false);
然后我尝试使用默认的PHP chown()函数,如下所示:

chown($url_origin, 'myself');
并得到另一个错误:不允许操作

我想我需要在某个地方指定用户的属性,但我现在不知道。有没有办法让这件事过去?我肯定我错过了一些明显的东西

谢谢-。

您不能使用“chown”,因为只有“root”可以使用“chown”

方法是在您的服务器中设置“chmod”或更改配置,使用php fpm和我的用户一起运行

问候