Tôi đã cài đặt libreoffice-headless và có thể chuyển đổi tài liệu khi đăng nhập vào shell như một người dùng bình thường.
[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
Bây giờ tôi muốn làm điều tương tự, nhưng sử dụng PHP và do đó là người dùng apache, tuy nhiên, sau đây sẽ không chuyển đổi tệp.
<?php
shell_exec('/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc');
?>
Trong nỗ lực khắc phục sự cố, tôi đã chạy lệnh tương tự thông qua trình bao như người dùng apache, nhưng nó vẫn không chuyển đổi tệp:
[root@desktop ~]# su -s /bin/sh apache -c "/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc"
Apache không giống như người dùng bình thường không có nhà và tôi nhớ rằng tôi có thể cần chỉ định nhà sử dụng HOME=/tmp/ayb
trước khi thử chuyển đổi, nhưng điều đó không có ích (tôi nghĩ khi sử dụng CentOS 5.8 và có lẽ là một phiên bản khác của LibreOffice, nó đã làm, nhưng không chắc chắn).
Làm cách nào để chuyển đổi tệp thành PDF bằng libreoffice khi chạy tệp dưới dạng apache người dùng?
Hệ thống đã cài đặt:
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 ...
làm việc? Mục đích củaexport
và tại sao khôngHOME=/tmp/ayb; libreoffice --headless....
hoạt động?