我正在尝试使用php中的unoconv
将HTML文件转换为RTF文件。
从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目录中。
当我在控制台中直接在服务器上运行$ command时,创建了转换后的文件。
你知道哪里可能有问题吗?
答案 0 :(得分:0)
问题可能在于PHP没有对tmp目录的正确权限。 尝试将转换后的文件保存到站点的根目录(或其中的子文件夹),看看它是否成功转换。
答案 1 :(得分:-1)
在ubuntu服务器上配置unoconv以在apache(www-data)用户下运行时
该解决方案基于:
https://github.com/dagwieers/unoconv/issues/87#issuecomment-16563550
和
https://github.com/dagwieers/unoconv/issues/87#issuecomment-32084464
分步指南
请遵循以下步骤:
1.创建新文件,其中包含用户www-data的sudoers条目:
sudo vi /etc/sudoers.d/www-data
2.将以下内容添加到新创建的文件并保存:
www-data ALL = NOPASSWD:/ usr / bin / unoconv
3.在PHP exec()中使用“sudo unoconv”