запустите exec в php для конвертации файла с помощью unoconv

Я пытаюсь преобразовать файл HTML в файл RTF, используя unoconv в php.

С php я звоню:


......
file_put_contents("/tmp/unoconv55b2862fea753.html", $content);
$command = "unoconv -f rtf -o /tmp/unoconv55b2862fea753.rtf /tmp/unoconv55b2862fea753.html";
exec($command, $output);
$converted = file_get_contents("/tmp/unoconv55b2862fea753.rtf");

проблема в том, что file_put content сохранит .html, но unoconv по какой-то причине не сохраняет преобразованный файл в каталог / tmp.

Когда я запускаю эту команду $ непосредственно на сервере в консоли, создается преобразованный файл.

У вас есть идеи, где могут быть проблемы?

0

Решение

Проблема может заключаться в том, что PHP не имеет необходимых прав для каталога tmp.
Попробуйте сохранить преобразованный файл в корне вашего сайта (или в подпапке внутри него) и посмотрите, успешно ли он преобразуется.

0

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

При настройке unoconv на сервере ubuntu для запуска под пользователем apache (www-data)
Это решение основано на:
https://github.com/dagwieers/unoconv/issues/87#issuecomment-16563550
а также
https://github.com/dagwieers/unoconv/issues/87#issuecomment-32084464

Пошаговое руководство
Следуй этим шагам:
1. Создайте новый файл, который будет содержать запись sudoers для пользовательских www-данных:
sudo vi /etc/sudoers.d/www-data
2. Добавьте следующий контент во вновь созданный файл и сохраните:
www-data ALL = NOPASSWD: / usr / bin / unoconv
3. В PHP exec () используйте «sudo unoconv»

-1

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