为什么我的PHP exec()命令之一无法打开文件?
在我的PHP脚本中,有三个exec()命令,所有这些命令都可以打开位于$ _SERVER [' DOCUMENT_ROOT']中的文件。其中两个命令也可以打开子目录中的文件(所有目录和文件具有相同的权限),但其中一个命令( case" 3" )不能。我在终端中测试了3个命令作为相同的Apache用户,在相同的子目录中,它们都工作了。我还在PHP CLI中测试了脚本,他们也在那里工作。以下是代码片段:
switch($_POST['Convert'])
{
case "1":
$FileNameConvert .= ".pdf";
$command = "convert '{$FileName}' '{$FileNameConvert}'";
break;
case "2":
$FileNameConvert .= ".html";
$command = "pdftohtml '{$FileName}' '{$FileNameConvert}'";
break;
case "3":
$FileNameConvert = "RotatedPDF.pdf";
$command = "pdftk '{$FileName}' cat 1-endsouth output '{$FileNameConvert}'";
break;
default:
echo "error";
exit();
}
echo exec($command,$op,$result);
Apache的错误日志显示:
I/O Error: Couldn't open file '$FileName': No such file or directory.
Error: Unable to find file.
Error: Failed to open PDF file:
$FileName
为什么以下命令不起作用?
$command = "pdftk '{$FileName}' cat 1-endsouth output '{$FileNameConvert}'";