我想从脚本php启动命令“unoconv”。
$command = '/usr/bin/unoconv --server localhost --port 2002 --format=pdf file.rtf >/dev/null 2>/dev/null';
$rc = system( $command );
echo $rc;
该命令不返回结果,并且不会创建文件。
我认为这是访问www-data和unoconv时出现的问题。
当我在shell中启动命令时,将创建文件。
任何想法?
最佳答案
您可以将命令unoconv添加到sudoers。
我这样做是这样的:
我在例如/usr/local/bin中创建包装器bash脚本,其中我有命令unoconv
。
#!/bin/bash
if [ -z "$1" ]; then
echo "Must pass file";
exit 10;
fi
/usr/bin/unoconv -f pdf $1.rtf
之后,我在
/etc/sudoers.d
中添加条目:www-data ALL=NOPASSWD: /usr/local/bin/unoconv.sh
现在,您可以在php中调用脚本了:
exec('sudo /usr/local/bin/unoconv.sh '.$fileName);
关于php - 如何从php文件启动unoconv,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11427965/