Saya menginstal libreoffice-headless dan dapat mengkonversi dokumen ketika masuk ke shell sebagai pengguna normal.
[root@desktop ~]# yum install libreoffice-headless
[root@desktop ~]# yum install libreoffice-writer
[root@desktop ~]# su NotionCommotion
sh-4.1$ /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
convert /tmp/ayb/document_34.doc -> /tmp/ayb/document_34.pdf using writer_pdf_Export
Saya sekarang ingin melakukan hal yang sama, tetapi menggunakan PHP dan karenanya sebagai apache pengguna, bagaimanapun, berikut ini tidak akan mengkonversi file.
<?php
shell_exec('/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc');
?>
Dalam upaya memecahkan masalah, saya menjalankan perintah yang sama melalui shell sebagai apache pengguna, tetapi tetap saja tidak akan mengonversi file:
[root@desktop ~]# su -s /bin/sh apache -c "/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc"
Apache tidak seperti pengguna normal yang tidak memiliki rumah, dan saya ingat pernah mendengar saya mungkin perlu menentukan rumah menggunakan HOME=/tmp/ayb
sebelum mencoba untuk mengkonversi, tetapi itu tidak membantu (saya pikir ketika menggunakan CentOS 5.8 dan mungkin versi LibreOffice yang berbeda, itu lakukan, tetapi saya tidak yakin).
Bagaimana cara mengonversi file ke PDF menggunakan libreoffice saat menjalankannya sebagai apache pengguna?
Sistem yang diinstal:
CentOS 6.4
httpd.x86_64 2.2.15-28.el6.centos @updates
libreoffice-headless.x86_64 1:3.4.5.2-16.1.el6_3 @base
export HOME=/tmp/ayb libreoffice --headless ...
berhasil? Apa tujuanexport
dan mengapa tidakHOME=/tmp/ayb; libreoffice --headless....
berhasil?