PHP exec命令在外壳和PHP命令行工作,但不能在网站

问题描述 投票:1回答:2

我在那里我试图复制的是,我已经使用PHP exec命令安装在服务器的驱动器上生成的文件有问题。但是,该命令不工作(虽然返回值是1)从网页时调用。

$src = "/mnt/...";
$dest = "/var/www/...";
exec("cp $src $dest");

我试图打印出命令,以确保它是正确的,它是。我也试图尝试复制之前,确保该文件存在,它是。

if (file_exists($src)) {
    exec("cp $src $dest");
}

直接复制命令到终端的作品。

$ >cp /mnt/... /var/www/...

我已经使用PHP命令行工具来运行exec命令还试图和也适用。

$ >php -r 'exec("cp /mnt/... /var/www/...");'

我一直在使用shell_exec以及,具有相同的结果也试过。

php exec
2个回答
0
投票

您可以添加第二个参数来帮助调试,$output会显示什么cp命令是干什么的,无论是错误或不。

我还建议将引号中的文件,以防万一有一个空间在那里得到。

$src = "/mnt/...";
$dest = "/var/www/...";
exec("cp '$src' '$dest'", $output, $retrun_var);

var_dump($output, $retrun_var);

0
投票

我有一个similar issue前一阵子。这是基本上所有的评论员在说什么。 web服务器的用户/许可受到限制,而且也正在使用shell环境和/或环境变量PATH。

© www.soinside.com 2019 - 2024. All rights reserved.