ฉันติดตั้ง libreoffice-headless และสามารถแปลงเอกสารเมื่อเข้าสู่ระบบเชลล์ในฐานะผู้ใช้ปกติ
[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
ตอนนี้ฉันต้องการทำสิ่งเดียวกัน แต่ใช้ PHP และเป็น apache ผู้ใช้อย่างไรก็ตามสิ่งต่อไปนี้จะไม่แปลงไฟล์
<?php
shell_exec('/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc');
?>
ในความพยายามแก้ไขปัญหาฉันรันคำสั่งเดียวกันผ่านเชลล์ในฐานะผู้ใช้ apache แต่ก็ยังไม่สามารถแปลงไฟล์ได้:
[root@desktop ~]# su -s /bin/sh apache -c "/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc"
Apache แตกต่างจากผู้ใช้ทั่วไปไม่มีบ้านและฉันจำได้ว่าได้ยินฉันอาจต้องระบุบ้านที่ใช้HOME=/tmp/ayb
ก่อนที่จะพยายามแปลง แต่มันก็ไม่ได้ช่วย (ฉันคิดว่าเมื่อใช้ CentOS 5.8 และอาจเป็น LibreOffice รุ่นอื่น ทำ แต่ไม่แน่ใจ)
ฉันจะแปลงไฟล์เป็น PDF โดยใช้ libreoffice ได้อย่างไรเมื่อรันเป็น apache ผู้ใช้
ระบบที่ติดตั้ง:
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 ...
ทำงาน มีจุดประสงค์อะไรexport
และเหตุใดจึงไม่HOME=/tmp/ayb; libreoffice --headless....
ทำงาน