web-dev-qa-db-ja.com

PHP execからのwkhtmltopdf呼び出しは終了コード127の失敗になります

CentOS6.3x64を使用します。

PHPスクリプトからwkhtmltopdf(from here )を実行しようとしています。SSH経由で直接wkhtmltopdf-AMD64を正常に呼び出すことができます。 PHP exec経由、終了コード127で常に失敗します。パスは正しいので問題ではありません。execを使用してlsidなどを正常に呼び出すことができるため、問題が発生しているようです。 wkhtmltopdf-AMD64の呼び出しに固有です。

これはどういうわけか権限に関連していると思いますが、どのような手順を踏むべきかわかりません。プログラムでApache:apacheおよびその他の所有権を試しましたが、755の権限があります。

ガイダンスをありがとう!

追記:

上記をさらに明確にしないことをお詫びします-問題がプログラムへのパスに関連していないことを確認しました。絶対パスを使用しています。 (pwdに関係なく)SSH回線からまったく同じコマンドを問題なく実行できることを確認しました。シェルスクリプトも作成しました。

#!/bin/sh
echo 'hello, world!'

このスクリプトはexecを介して呼び出すことができ、正しく機能します。ただし、次のように変更すると

#!/bin/sh
echo 'hello, world!'
/full/path/to/wkhtmltopdf-AMD64 'http://www.google.com/' /full/path/to/output.pdf

その後、失敗し、終了コード127を返します。

4
N Rohler

シェルがバイナリを見つけられないようです。フルパス名で呼び出してみてください(例:/usr/bin/lslsの代わりに)。詳細については、 man bash

2
fuero

私はしばらく前に同じ問題を抱えていました。私の場合、実行ビットが設定されていない場合は126、ビットが設定されている場合は127になります。

後で、システムにないいくつかの共有ライブラリに関連していることがわかりました。バイナリが静的にリンクされている場合でも、システムの共有ライブラリを使用しているようです。

どのライブラリが問題を引き起こしていたかはよく覚えていませんが、この要点: https://Gist.github.com/nghuuphuoc/8282411 は良い出発点だと思います。

0
Hikaru-Shindo