私に似たトピックがいくつかありましたが、役に立ちませんでした。ひょっとしたら何か新しいものが出てくるかもしれません。
問題: 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 です。他のマシンでも試してみましたが、同じ結果が得られました。
どんな(どんな)アイデアでも大歓迎です!