Исходное сообщение об ошибке
sh: 1: pdftk: not found
Это, очевидно, приводит к this . Это не первый раз, когда я сталкиваюсь с этой проблемой, и я уверен, что это не pdftk или php-pdftk.
Вот предыстория: я разрабатываю веб-приложения с использованием php 5.4 на linuxmint. Потом проект был прекращен. У меня уже есть репозиторий для этого проекта, поэтому я удаляю весь файл. Несколько месяцев спустя я решил написать совершенно новый проект на php 7, если быть точным, 7.3.
Внезапно мне пришлось сделать новый патч. Тогда это способ получения pdftk . На терминале я могу играть с pdftk cli, например печатать текущую версию. Но, тем не менее, веб-сервер выдает ту же ошибку.
Уточнения, найденные в комментариях :
я думаю, это связано с разрешением, двоичный файл уже установлен. я могу использовать его через терминал.
Путем я добираюсь, pdftk с помощью снимка, печально он имеет немного ограничений. Даже на упомянутых статьях рекомендует установить с помощью снимка, но печально он также дает эту проблему.
Теперь pdftk доступен на монетном дворе, затем можно удалить pdftk с помощью снимка, затем устанавливают pdftk непосредственно через Кв.
apt install pdftk
Если pdftk
можно использовать после входа в систему (на терминале, как вы говорите), то есть несколько вариантов:
Разрешения: проверьте, что файл имеет правильные разрешения , позволяющие всем выполнять его.
Среда: когда вы вводите pdftk
в командной строке, интерпретатор (Shell, Bash и т. д.) знает, что нужно искать в различных места для двоичных файлов. Например, он будет выглядеть в / usr / bin
. Его внешний вид задается в переменной среды PATH
(см. echo $ PATH
). Однако это в вашей пользовательской конфигурации. PHP, работающий на веб-сервере Apache, может не иметь этой среды. Поэтому в вашем коде лучше всего использовать полный путь. Какой путь? Вы можете узнать, запустив which pdftk
в вашем терминале. Указание полного пути в PHP-коде позволит обойти проблему PATH
.
Другие, возможно, соответствующие сообщения относительно разрешений: