Я пытаюсь запустить wkhtmltopdf (0.11.0 rc1) с php (5.4.2) на apache (2.4.2). Когда я пытаюсь запустить wkhtmltopdf-i386 --use-xserver http://www.google.com google.pdf 2>&1
, я могу найти свой pdf. Вот мой php-код
<?php
$cmd= '/usr/bin/wkhtmltopdf-i386 http://www.google.com google.pdf 2>&1';
$ret = shell_exec($cmd);
echo $ret;
?>
Он работает с apache и как командная строка php test.php
. Потому что моя целевая страница содержит много изображений и несколько «тяжелых» диаграмм js. У меня возникла ошибка сегментации с помощью команды wkhtmltopdf, когда я пытаюсь преобразовать ее в pdf. Единственный способ заставить его работать — использовать xvfb в качестве эмулятора X11. Код выглядит так:
<?php
$cmd= '/usr/bin/xvfb-run /usr/bin/wkhtmltopdf-i386 --use-xserver http://www.google.com google.pdf 2>&1';
$ret = shell_exec($cmd);
echo $ret;
?>
Этот скрипт работает с командной строкой php test.php
, но не работает с apache. Если я взгляну на процесс апача с htop
, я увижу, что есть два процесса (с php test.php
):
- xvfb
- wkhtmltopdf
Когда я запускаю с apache, у меня есть только процесс xvfb. Он завершается по тайм-ауту от apache, потому что он ожидает процесса wkhtmltopdf.
Я могу заставить его работать с apache (2.2.21) и php (5.3.10).
Есть ли что-то, чего мне не хватает? Может быть что-то в конфигурационных файлах апача?