Я хотел бы использовать 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 на сервере.
Exec, вероятно, не имеет разрешения на выполнение файла. PHP обычно работает как apache
или же nobody
, а не ваша учетная запись пользователя. Вы должны убедиться, что бит выполнения установлен для любого пользователя, под которым он работает. Ты можешь использовать chmod 755 wkhtmltopdf
из каталога, в котором он находится, чтобы предоставить чтение и выполнение всем пользователям.
Обратите внимание, что на некоторых общих хостингах exec()
выключен. Проверьте с вашим хостом, чтобы убедиться, что у вас есть доступ к нему.
Определите полный путь к исполняемому файлу wkhtmltopdf и полный путь к выходной папке.
Для отладки попробуйте что-то вроде этого:
shell_exec("/home/binary_loc/wkhtmltopdf http://www.google.com /home/user/output.pdf > /home/user/debug.log 2>&1");
передать ошибку в файл