wkhtmltopdf не работает в PHP-скрипте

Я хотел бы использовать wkhtmltopdf для преобразования HTML в PDF.

Когда я попытался преобразовать его через терминал Linux, он работает нормально.

Но когда я попробовал с php-скрипт, он не работает.

Я пытаюсь выполнить двоичный файл напрямую.

Вот код, который я пытаюсь с PHP.

exec('/home/binary_loc/wkhtmltopdf http://www.google.com /home/user/output.pdf');

Мой бинарный файл находится в той же папке, где существует «index.php».

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

Но я не могу понять, почему не работает с PHP для PDF.

Вот код для проверки версии с использованием php.

error_reporting(E_ALL);
ini_set('display_errors', '1');
$cmd = "./wkhtmltopdf --version";
$t = shell_exec($cmd);
echo $t;
exit()

У кого-нибудь есть решение относительно этого?

Я хочу этого, потому что это будет работать и на виртуальном хостинге. Нет необходимости устанавливать wkhtmltopdf на сервере.

3

Решение

Exec, вероятно, не имеет разрешения на выполнение файла. PHP обычно работает как apache или же nobody, а не ваша учетная запись пользователя. Вы должны убедиться, что бит выполнения установлен для любого пользователя, под которым он работает. Ты можешь использовать chmod 755 wkhtmltopdf из каталога, в котором он находится, чтобы предоставить чтение и выполнение всем пользователям.

Обратите внимание, что на некоторых общих хостингах exec() выключен. Проверьте с вашим хостом, чтобы убедиться, что у вас есть доступ к нему.

0

Другие решения

Определите полный путь к исполняемому файлу wkhtmltopdf и полный путь к выходной папке.

Для отладки попробуйте что-то вроде этого:

shell_exec("/home/binary_loc/wkhtmltopdf http://www.google.com /home/user/output.pdf > /home/user/debug.log 2>&1");

передать ошибку в файл

0

По вопросам рекламы [email protected]