0

CentOS マシンに LibreOffice RPMS (3.5.3 と 3.4.6 の両方を試しました) をインストールしました。LibreOffice を呼び出すシェル スクリプトを PHP で実行しようとしています。シェル スクリプトでは、次の行を実行します。

/opt/libreoffice3.4/program/soffice --headless -convert-to $extension.pdf "$1" -outdir $folder

ただし、このコマンドを実行すると、次のメッセージが表示されます。

./createpdf.sh: line 8: /opt/libreoffice3.4/program/soffice: Permission denied

ライン自体は問題ありません。エコーして SSH で手動で実行すると、正常に動作します。これは、異なる権限を持つ別のユーザー (注: インストールしたユーザーや root としてではなく) として実行しているためである可能性が最も高いです。

私は絶望的でしたが、すでに libreoffice フォルダー全体を 777 に chmod して、「apache」ユーザーを所有者にしようとしました。そこには運がありません。なぜApacheに実行させないのか、どうすればこれを解決できるのか、誰にも手がかりがありますか?

4

2 に答える 2

1

コマンドラインから実行する代わりに、PUNO PHPラッパーを使用してUNO(COMの代わりとなるOpen / Libre Office)を実行することを検討しましたか。そうすれば、権限について心配する必要はありません

于 2012-05-16T12:34:38.360 に答える
1

Universal Network Objects (UNO)も参照してください。Python、Java などのブリッジを使用できます。変換の使用を簡素化するためのアプリケーションがあります。Docvertおよび JODConverter ( jODconverterおよびpyODconverter ) を参照してください。

これらはすべて、PHP によって Web サービスまたは exec として呼び出すことができます。

于 2012-11-11T20:33:11.307 に答える