我想从脚本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中启动该命令时,该文件已创建。
有什么想法吗?
发布于 2012-07-11 16:01:04
您可以向sudoers添加unoconv命令。我是这样做的:
例如,我在/usr/local/bin中创建了wrapper 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);发布于 2012-07-11 15:59:07
试着跑
$output = `/usr/bin/unoconv --server localhost --port 2002 --format=pdf file.rtf`;而不是查看错误消息。
发布于 2016-01-27 02:31:09
对我来说是这样的:
$cmd = "/usr/bin/unoconv -f docx files/thefile";
shell_exec($cmd);当然,你必须提前做这件事(如果你从web上下载php脚本):
chown -R www-data:www-data files/https://stackoverflow.com/questions/11427965
复制相似问题