本日、プログラム作成を担当しているメンバーから報告が来て対応したのでメモとして残しておく。
ExcelやWord、PowerPointのファイルをPDF化するのに、サーバー上にLibreofficeを導入しコマンドラインから利用しているが、PHPでプログラム化したときにエラーが発生してしまうという報告があった。そのメンバーは「LIBREOFFICEをPHP(Apatche)経由でPDFに変換するとエラーの対処方法」というサイトを参考にしたがセキュリティ的に不安があるという。
ちなみにエラーは以下のようなもの。
[Java framework] Error in function createSettingsDocument (elements.cxx).
javaldx failed!
Warning: failed to read path from javaldx
なんだろ?パスが通っていないのかな?と思ったが、どうやらそうではないらしい。調査の結果、apacheユーザーのホームディレクトリ(今回の場合は/var/www)に対してapacheユーザー自身の書き込み権限が無いため、Libreofficeの設定が書き込めずエラーになっていると言うことらしいことが判明。以下の対応をして解決した。
sudo mkdir /var/www/libreoffice
sudo chown -R apache:apache /var/www/libreoffice
たったこれだけ。先のサイトに書かれているようなことは一切しなくて良い。
ちなみに、先のサイトの著者さんは切り分けの段階から対応を間違っているので、あそこに書かれている方法では正しく解決出来ないのである。せっかく日本語で情報が提供されていても正しくなくては何もならない。今回も、海外のサイトの情報を幾つかかき集めて、最終的には自分で解を見つけることになった。日本語のサイト(特に個人のブログ)では正しくない情報が提供されている例をよく見かけるので、ここも個人のブログであるが正しい情報を提供すると共に、自分のためのメモとして残しておく。
コメント