Назад | Перейти на главную страницу

веб-сервер продолжает кричать, что pdftk не найден

Исходное сообщение об ошибке

sh: 1: pdftk: не найдено

Это, очевидно, приводит к этот. Это не первый раз, когда я сталкиваюсь с этой проблемой, и я уверен, что это не pdftk или php-pdftk.

Вот предыстория: я разрабатываю веб-приложения с использованием php 5.4 на linuxmint. Потом проект был прекращен. У меня уже есть репозиторий для этого проекта, поэтому я удаляю весь файл. Несколько месяцев спустя я решил написать совершенно новый проект на php 7, если быть точным, 7.3.

Неожиданно пришлось делать новый патч. Тогда это как я получаю pdftk. На терминале я могу играть с pdftk cli, например печатать текущую версию. Но все же веб-сервер сообщает ту же ошибку.

Разъяснения найдены в комментариях:

Я думаю, это связано с разрешением, двоичный файл уже установлен. я могу использовать его через терминал.

Я получаю pdftk через snap, но, к сожалению, у него мало ограничений. Даже в упомянутых статьях рекомендуется установить через оснастку, но, к сожалению, это также вызывает эту проблему.

Теперь pdftk доступен на mint, затем вы можете удалить pdftk через оснастку, а затем установить pdftk напрямую через apt.

apt install pdftk

Если pdftk можно использовать после входа в систему (как вы говорите, на терминале), то есть несколько вариантов:

Разрешения: убедитесь, что файл имеет правильные разрешения, позволяя каждому выполнить его.

Окружающая среда: когда вы печатаете pdftk в командной строке интерпретатор (Shell, Bash и т. д.) знает, как искать двоичные файлы в разных местах. Например, он будет смотреть в /usr/bin. Где это выглядит, установлено в PATH переменная окружения (см. echo $PATH). Однако это в вашей пользовательской конфигурации. PHP, работающий на веб-сервере Apache, может не иметь этой среды. Поэтому в вашем коде лучше всего использовать полный путь. Какой путь? Вы можете узнать, запустив which pdftk в вашем терминале. Указание полного пути в PHP-коде позволит обойти PATH проблема.

Другие, возможно, соответствующие сообщения в отношении разрешений: