【发布时间】:2012-03-06 23:46:44
【问题描述】:
我正在尝试使用 LibreOffice 将电子表格转换为另一种格式,当我从控制台执行命令时它工作正常,但是当我使用 exec() 或 system() 从 PHP 执行它时它不起作用。 它没有显示任何错误或任何东西,它只是默默地失败,如果我尝试执行一些简单的命令,如“ls”,它就可以正常工作。
这是我正在使用的命令:
<?php
system("libreoffice --headless -convert-to ooxml '/home/www/path_to_app/file.xlsx' -outdir /home/www/path_to_app/");
我已经尝试将 /opt/lampp/etc/httpd.conf 上的 apache 用户和组更改为与我相同的登录用户。
我想知道问题是否在于 www 文件夹是 /home 而不是我的用户内部,这会导致权限问题,但到目前为止无法使其工作。
任何帮助将不胜感激。
【问题讨论】:
-
尝试在你的命令中指定
libreoffice的完整路径,例如/usr/local/bin/libreoffice或安装它的任何地方,看看是否能让你走得更远。 -
有愚蠢的风险 - exec() 不会返回错误消息,您确定它会默默地失败吗?你试过 passthru() 吗?