PDFTKを使用するWebサイトがあります。
私のサイトでは、ユーザーがフォーム経由でPDFファイルを送信し、ボタンをクリックするだけで、すべてのファイルの組み合わせを起動してファイルを作成できます。
ファイルを送信すると、Apacheユーザーが割り当てられます。
コマンドラインを実行すると、機能しません。すべてのファイルをユーザーおよびグループルートに渡すと、コマンドラインが渡されます。私のサイトを適切に機能させるために不可能なことを行うための手動のアクションがあることを除きます。
これはエラーのある私のコマンドです:
$ /snap/bin/pdftk "upload/418/2018/fichier1.pdf" cat output upload/418/2018/fichiercombine.pdf dont_ask
Error: Unable to find file.
Error: Failed to open PDF file:
upload/418/2018/fichier1.pdf
Errors encountered. No output created.
Done. Input errors, so no output created.
これは良いコマンドですが、chown
を使用します。
chown -R root:root upload/418/2018
/snap/bin/pdftk "upload/418/2018/fichier1.pdf" cat output upload/418/2018/fichiercombine.pdf dont_ask
ここで何が問題になりますか?
あなたに応じて動作するこのコマンド:
chown -R root:root upload/418/2018
/snap/bin/pdftk "upload/418/2018/fichier1.pdf" cat output upload/418/2018/fichiercombine.pdf dont_ask
変更ディレクトリ(cd /var/www/html/
のようなもの)が先行していました。
これはそれをしませんでした:
$ /snap/bin/pdftk "upload/418/2018/fichier1.pdf" cat output upload/418/2018/fichiercombine.pdf dont_ask
Error: Unable to find file.
Error: Failed to open PDF file:
upload/418/2018/fichier1.pdf
Errors encountered. No output created.
Done. Input errors, so no output created.
... upload/
を置いた場所から開始するディレクトリ内から実行しようとします代わりに「ファイルが見つかりません」と表示されるため、2番目のコマンドは正しいディレクトリで実行されていないと思います。許可の問題である場合:ユーザーApacheをpdftk
を所有するグループに追加するか、rootが所有している場合は、そのグループを新しいグループに変更し、Apacheを追加します。
ディレクトリの発行の場合、最も簡単な解決策は、相対パスではなく絶対パスを使用することです。または、コマンドの前にcd /var/www/html &&
を追加し、必要に応じて/var/www/html
を置き換えます。