Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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 系统(“cp/1.txt/2.txt”,$out);只是没有';不行?_Php_Linux_Apache_Ubuntu - Fatal编程技术网

Php 系统(“cp/1.txt/2.txt”,$out);只是没有';不行?

Php 系统(“cp/1.txt/2.txt”,$out);只是没有';不行?,php,linux,apache,ubuntu,Php,Linux,Apache,Ubuntu,我试图使用php系统(exec)函数在linux上运行一些命令,但它就是不起作用 我已使用root用户登录系统。我创建了“/1.txt”文件,然后通过apache服务器运行这个php脚本:system(“sudo cp/1.txt/2.txt”,$out)但它不会复制文件 你能解释一下为什么它不起作用吗?(我是linux操作系统新手,请解释)删除sudo,并在/1.txt和/2.txt上授予apache用户权限,它应该可以工作 如果/2.txt不存在,则创建一个目录,将1.txt放在该目录中,并

我试图使用php系统(exec)函数在linux上运行一些命令,但它就是不起作用

我已使用root用户登录系统。我创建了“/1.txt”文件,然后通过apache服务器运行这个php脚本:
system(“sudo cp/1.txt/2.txt”,$out)但它不会复制文件


你能解释一下为什么它不起作用吗?(我是linux操作系统新手,请解释)

删除
sudo
,并在/1.txt和/2.txt上授予apache用户权限,它应该可以工作


如果/2.txt不存在,则创建一个目录,将1.txt放在该目录中,并向apache用户授予该目录和文件的权限。

/1.txt和/2.txt位于文件系统的最高层-这就是您的目标吗?不管怎样,这都不是个好主意

我建议您在文件所在的区域设置文件,例如/var/webapp files/,这样您可以执行以下操作:

define('WEBAPP_FILES_LOCATION', '/var/webapp-files');
system("cp ".WEBAPP_FILES_LOCATION."/1.txt ".WEBAPP_FILES_LOCATION."/2.txt", $out);
注意:我已经为位置定义了一个常量,因为在许多不同的地方都需要它,如果你想随时更改它,你不想重复自己

这将要做的是运行系统命令:

cp /var/webapp-files/1.txt /var/webapp-files/2.txt
如果您的/var/webapp files目录对您的apache用户具有写访问权限,则该操作应成功

但是…PHP确实有一个内置的复制函数,我建议使用它,而不是使用更通用、更危险的系统()。您可以在此处阅读有关copy()的内容,因为cp需要完整的路径,所以您可以重构我前面的示例以:

define('WEBAPP_FILES_LOCATION', '/var/webapp-files');
$copySucceeded = copy(WEBAPP_FILES_LOCATION."/1.txt", WEBAPP_FILES_LOCATION."/2.txt");
echo "The copy attempt ". ($copySucceeded ? "succeeded" : "failed");

希望这能有所帮助。

您可能没有给
sudo
密码?我应该如何给sudo密码?