7

私に似たトピックがいくつかありましたが、役に立ちませんでした。ひょっとしたら何か新しいものが出てくるかもしれません。

問題: PHP から wkhtmltopdf を実行できません。私の基本的なコードは次のとおりです。 exec('wkhtmltopdf http://somesite.com /home/user/file.pdf');

今私がすでにチェックしたいくつかのこと:

  • コンソールから実行すると同じコマンドが機能します
  • safe_mode が無効 - PHP でコマンドを実行できます。たとえば、正常にexec('ls');動作します。
  • wkhtmltopdfへのパスが見つかり、プログラム自体を実行できます。たとえば、正常に動作し、exec('wkhtmltopdf -V');バージョン情報を出力します
  • 出力パスは書き込み可能で、777 のアクセス許可があり、exec('wkhtmltopdf -V > /home/user/file.pdf');正常に動作し、ファイルを作成し、バージョン管理情報を内部に配置します
  • PHP から実行すると、インターネットにアクセスできます。たとえば、正常にexec('wget -O /home/user/file.pdf http://somesite.com')動作し、サイトのソースを取得してファイルに入れます。
  • exec をパススルー、shell_execなどに置き換えても違いはありません

結論: wkhtmltopdf を実行でき、インターネットにアクセスでき、特定のファイルを書き込むことができますが、正しい変換コマンドは失敗し、ステータス 1 が返されます。

私は最新の Ubuntu を使用しています。PHP のバージョンは 5.3.10-1ubuntu3、wkhtmltopdf のバージョンは 0.9.9 です。他のマシンでも試してみましたが、同じ結果が得られました。

どんな(どんな)アイデアでも大歓迎です!

4

1 に答える 1

16

コマンドの最後に追加2>&1して、正確なエラーを理解してください。

exec('wkhtmltopdf http://somesite.com /home/user/file.pdf 2>&1');

このようにして、これを Apache で実行するとエラーが通知されます。何が問題なのかがわかれば、対処しやすくなります。ImageMagickで以前に同様の問題がありました

于 2012-05-20T03:57:19.767 に答える