Я пытаюсь преобразовать файл 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.
Когда я запускаю эту команду $ непосредственно на сервере в консоли, создается преобразованный файл.
У вас есть идеи, где могут быть проблемы?
Проблема может заключаться в том, что PHP не имеет необходимых прав для каталога tmp.
Попробуйте сохранить преобразованный файл в корне вашего сайта (или в подпапке внутри него) и посмотрите, успешно ли он преобразуется.
При настройке 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»