13

プログラムでドキュメントを変換するために、Apache を使用して freebsd-server に libreoffice headless をインストールしました (odt->pdf など)。コマンドラインから操作可能!しかし、私の目標はphpからできるようにすることです。これは、Web ユーザー (www) が libreoffice を実行できることを要求します。しかし、それはできません。

自分のユーザーとして libreoffice を実行すると、次のようになります。

%libreoffice --headless -convert-to pdf Litteraturundervisningogit.doc
javaPathHelper: not found #This should not be a problem, says people on the net.
convert /usr/home/bundsgaard.net/www/jeppe/foredrag/Litteraturundervisningogit.doc ->
 /usr/home/bundsgaard.net/www/jeppe/foredrag/Litteraturundervisningogit.pdf using writer_pdf_Export
%

root で同じコマンドを実行しても、うまくいきません。同じことが、php の www-user の問題です。

sp# libreoffice --headless -convert-to pdf Litteraturundervisningogit.doc
javaPathHelper: not found
sp#

問題は、libreoffice から情報を取得できないことです。そのため、libreoffice が自分以外のユーザーとして実行されたくない理由がわかりません。

私の質問は、php で exec() を介して libreoffice を実行する許可を www-user に与えるにはどうすればよいですか?

4

8 に答える 8

15

私は、convertコマンドを実行する前に、この問題をすばやく修正することができましたexport HOME=/tmp。これにより、libreofficeは、魔法のように動作するように書き込み可能になります。

于 2012-04-17T14:45:03.223 に答える
3

厳密には答えではありませんが、PHP の exec を使用するのではなく、OpenOffice.org UNO プログラミング API へのアクセスを提供する PHP5 モジュールであるPUNOを使用することを検討してください。

于 2012-01-29T23:17:57.170 に答える
3

このブログ記事をご覧になりましたか?

http://geekswithblogs.net/robertphyatt/archive/2011/11/19/converting-.docx-to-pdf-or-.doc-to-pdf-or-.doc.aspx

于 2012-04-13T19:52:20.457 に答える
1

私は同じ問題を抱えていました.はい(Wrikkenに感謝します)/usr/local/sbinPATH環境変数に追加した後、apacheでwww-dataとしてlibreofficeを実行できました.

于 2012-02-14T16:48:07.503 に答える
0

Universal Network Objects(UNO)について は、いくつかの「プラグアンドプレイ」ファイナルユーザーツールがあります。Docvertおよび JODConverterjODconverterおよびpyODconverter)を参照してください。これらはすべて、PHPによってWebサービスまたはexecとして呼び出すことができます。

于 2012-11-11T20:45:08.143 に答える