PHP 更改 fopen 的默认用户
PHP Change default User on fopen
我在尝试使用其他用户而非 www 数据写入文件时遇到问题。
我需要将文件保留在不属于我的映射单元上,因此我无法更改该文件的权限。 Insetead 我有一个用户名和一个组,我们称它们为 'myself':'myself'
我正在使用 Symfony 5 文件系统来移动文件,但我仍然使用 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_origin 中)并尝试将文件复制到 $url_destiny,然后删除原始文件(同样,只是一个测试)。
提示是该文件始终由 www-data 创建,对于我的目标目录,我需要将文件所有者设置为 'myself'。
有什么方法可以使用 sudo 更改文件所有者?
$filesystem->chown($url_origin, 'myself', false);
这 returns 一个错误 -> 无法更改文件“my/route/file.xml”
尝试时发生同样的事情
$filesystem->chgrp($url_origin, 'myself', false);
然后我尝试使用默认的 PHP chown() 函数,如下所示:
chown($url_origin, 'myself');
并得到另一个错误:不允许操作。
我想我需要在某个地方指定用户的属性,但我现在一无所知。关于如何通过这个的任何想法?我确定我遗漏了一些明显的东西。
谢谢-.
您不能使用“chown”,因为只有“root”可以使用“chown”。
方法是使用 php-fpm 运行 我自己的用户设置“chmod”或更改服务器配置。
此致
我在尝试使用其他用户而非 www 数据写入文件时遇到问题。 我需要将文件保留在不属于我的映射单元上,因此我无法更改该文件的权限。 Insetead 我有一个用户名和一个组,我们称它们为 'myself':'myself'
我正在使用 Symfony 5 文件系统来移动文件,但我仍然使用 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_origin 中)并尝试将文件复制到 $url_destiny,然后删除原始文件(同样,只是一个测试)。
提示是该文件始终由 www-data 创建,对于我的目标目录,我需要将文件所有者设置为 'myself'。
有什么方法可以使用 sudo 更改文件所有者?
$filesystem->chown($url_origin, 'myself', false);
这 returns 一个错误 -> 无法更改文件“my/route/file.xml”
尝试时发生同样的事情
$filesystem->chgrp($url_origin, 'myself', false);
然后我尝试使用默认的 PHP chown() 函数,如下所示:
chown($url_origin, 'myself');
并得到另一个错误:不允许操作。
我想我需要在某个地方指定用户的属性,但我现在一无所知。关于如何通过这个的任何想法?我确定我遗漏了一些明显的东西。
谢谢-.
您不能使用“chown”,因为只有“root”可以使用“chown”。
方法是使用 php-fpm 运行 我自己的用户设置“chmod”或更改服务器配置。
此致