在php中使用cp命令时未创建文件

时间:2017-05-03 11:59:30

标签: php linux copy

在我的程序中,我需要将文件复制到新文件中。我正在使用以下php代码更改文件夹权限并将现有文件 test.php 复制到新文件(尚未创建) test_1.php

exec('chmod -R 0777 /folder1/');
exec('sudo cp /folder1/test.php /folder/test_1.php');

但这不是创建和复制 test_1.php 文件。

任何人都可以帮我解决这个问题吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

当你这样做时:

exec('sudo cp /folder1/test.php /folder/test_1.php');

你的php代码是否具有移动文件的'sudo'权限?您需要相应地设置权限。

请参考: Sudo in php exec

答案 1 :(得分:-1)

你的问题出现在第一个命令中,

PHP无权执行此操作:

exec('chmod -R 0777 /folder1/');

只要PHP http服务器api正在运行 - 除非您没有更改此内容 - 在www-data用户下无权执行此类任务。

您需要作为系统管理员首先为该文件夹folder1授予0777权限,然后您可以使用php轻松地对其执行命令

另一种方法是为www-data用户提供文件夹的所有权

但您仍然必须以超级用户[不推荐]

执行此命令
$ chown www-data folder1/