我目前正在通过DropzoneJS上传DOC或DOCX文件,然后使用LibreOffice PHP exec将其转换为服务器中的PDF . 如果我在服务器中手动输入它然后它将转换,但如果我通过浏览器运行它然后它不转换 . 我试图在没有sudo的情况下运行soffice,但是通过浏览器运行的命令无效 . 如何通过浏览器运行转换它?
终端手动命令:
/opt/libreoffice5.2/program/soffice --convert-to pdf /var/www/html/my_system/public/msword.doc --outdir / var / www / html / my_system / storage / app / quotations
命令 ls -liah 文件夹的结果:
my_system,storage,app,quotations = drwxrwxrwx apache apache
我的 sudo visudo 结果(粘贴的行没有按顺序发表评论):
Defaults requiretty
Defaults !visiblepw
Defaults always_set_home
www-data ALL=NOPASSWD:ALL
robert ALL=NOPASSWD:ALL
apache ALL=NOPASSWD:ALL
PHP File :
$command = '/opt/libreoffice5.2/program/soffice --convert-to pdf /var/www/html/my_system/public/msword.doc --outdir /var/www/html/my_system/storage/app/quotations';
if (!$return) {
echo "PDF Created Successfully";
} else {
echo 'PDF not created. Command = ' . $command . '=' . $return;
}
谢谢 .
1 回答
通过https://superuser.com/questions/627266/convert-file-to-pdf-using-libreoffice-under-user-apache-i-e-when-using-php找到了正确的答案
引用正确的答案: