gpt4 book ai didi

php - exec() 什么都不做

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:41 25 4
gpt4 key购买 nike

当我在 shell 命令提示符中键入以下内容时,它会将 .docx 文件转换为 .pdf 文件。

HOME=/tmp libreoffice3.5 --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_16_64.docx

但是当我运行以下 PHP 脚本时,没有任何反应。我已将/tmp/ayb 权限设置为 777,但还是不行。有任何想法吗?谢谢

<?php
$cmd='HOME=/tmp libreoffice3.5 --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_16_64.docx';
exec($cmd);
?>

编辑 - 以下脚本产生以下结果。请注意,exec() 需要一些时间,而 shell_exec() 则不需要。

<?php
$cmd='HOME=/tmp; /usr/bin/libreoffice3.5 --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_16_64.docx';
echo($cmd);
exec($cmd,$out,$ret);
echo('<br />exec()<br />$out='.print_r($out,1).'<br />$ret='.$ret);
$out=shell_exec($cmd);
echo('<br />shell_exec()<br />$out='.print_r($out,1));
?>

输出

HOME=/tmp; /usr/bin/libreoffice3.5 --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_16_64.docx
exec()
$out=Array ( )
$ret=134
shell_exec()
$out=

最佳答案

Apache 是否具有正确的用户权限?如果您以 root 身份登录 SSH,那么您将拥有对命令的完全访问权限;所以你可能需要升级 Apache 对某些目录的权限。

您可能还会发现值得一试 shell_exec() .

正如 Michael 所指出的,这也可能是一个目录问题。指向完整目录路径而不是相对路径。

关于php - exec() 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com