首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从php文件启动unoconv

如何从php文件启动unoconv
EN

Stack Overflow用户
提问于 2012-07-11 15:49:25
回答 6查看 7.4K关注 0票数 6

我想从脚本php启动命令"unoconv“。

代码语言:javascript
复制
$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中启动该命令时,该文件已创建。

有什么想法吗?

EN

回答 6

Stack Overflow用户

发布于 2012-07-11 16:01:04

您可以向sudoers添加unoconv命令。我是这样做的:

例如,我在/usr/local/bin中创建了wrapper bash脚本,其中我有命令unoconv

代码语言:javascript
复制
#!/bin/bash

if [ -z "$1" ]; then
    echo "Must pass file";
    exit 10;
fi

/usr/bin/unoconv -f pdf $1.rtf

之后,我在/etc/sudoers.d中添加了条目

代码语言:javascript
复制
www-data    ALL=NOPASSWD: /usr/local/bin/unoconv.sh

现在你可以在php中调用脚本了:

代码语言:javascript
复制
exec('sudo /usr/local/bin/unoconv.sh '.$fileName);
票数 7
EN

Stack Overflow用户

发布于 2012-07-11 15:59:07

试着跑

代码语言:javascript
复制
$output = `/usr/bin/unoconv --server localhost --port 2002 --format=pdf file.rtf`;

而不是查看错误消息。

票数 1
EN

Stack Overflow用户

发布于 2016-01-27 02:31:09

对我来说是这样的:

代码语言:javascript
复制
$cmd = "/usr/bin/unoconv -f docx files/thefile";
shell_exec($cmd);

当然,你必须提前做这件事(如果你从web上下载php脚本):

代码语言:javascript
复制
chown -R www-data:www-data files/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11427965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档