2012-08-24 9 views
9

से काम नहीं करेगा हेडलेस उबंटू सर्वर चल रहा है 12. कुछ।लिबर ऑफिस --हेडलेस रूट तक कनवर्ट करने से इंकार कर देता है, PHP स्क्रिप्ट

जड़ @ सर्वर: chown www-data /my/path/ -R

जड़ @ सर्वर: chgrp www-data /my/path/ -R

जड़ @ सर्वर: chmod 755 /my/path/ -R

जड़ @ सर्वर: libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path

convert /my/path/foo.ppt -> /my/path/foo.pdf 

वर्क्स एक आकर्षण की तरह।


जड़ @ सर्वर: sudo -i -u www-data

$ libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path

convert /my/path/foo.ppt -> /my/path/foo.pdf 
Error: Please reverify input parameters... 

अरे।


जड़ @ सर्वर: sudo -i -u someotheruser

$ libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path

convert /my/path/foo.ppt -> /my/path/foo.pdf 
Error: Please reverify input parameters... 

अरे।

किसी को भी कोई विचार है? इस पर शोध करने की कोशिश कर मुझे और भी उलझन में डाल दिया। क्या यह शायद एक बग या कुछ निर्भरता quirk है?

+0

मुझे उबंटू 12.04 में एक ही समस्या है, मैं ओडीएस फ़ाइलों को पीडीएफ में बदलने की कोशिश कर रहा हूं और यह केवल –

+0

@ जेसेक वाईसोकी के साथ काम कर रहा है - मुझे LibreOffice (http://www.artofsolving.com/opensource/pyodconverter) के साथ DocumentConverter.py का उपयोग करके एक वर्कअराउंड मिला। केवल परेशानी है, आपको libreoffice को निंदा करने की जरूरत है, जो गधे में दर्द का दर्द है और मुझे कुछ परेशानी हुई है। ओह, और डिमन को अभी भी जड़ के रूप में चलाने की जरूरत है। – Greg

+1

मेरे पास भी एक है: '$ sudo visudo' और मैंने यह पंक्ति जोड़ दी है: '% उपयोगकर्ता सभी = (सभी) NOPASSWD: libreoffice' उस सूडो लिब्रोफॉइस के बाद ... 'पासवर्ड के बिना –

उत्तर

-1

मैं

http://dag.wieers.com/home-made/unoconv/

पर एक नज़र ले जाएगा यह उपकरण अधिक अपने फ़ाइलों को ठीक से कन्वर्ट करने के लिए अनुकूल होना चाहिए। यह उबंटू रेपो पर उपलब्ध है, इसलिए स्थापना के साथ कोई समस्या नहीं होनी चाहिए।

1

जेसेक ने अपनी टिप्पणी में कहा था, उपयोगकर्ता को कमांड के रूप में कमांड को निष्पादित करने का प्रयास कर रहे हैं, बिना पासवर्ड के आवश्यक है। फिर

sudo libreoffice <rest of command> 

मेरे लिए काम किया गया है, तो अपना libreoffice कमांड बदलें। मेरी भी यही समस्या थी।

0

आप www-data उपयोगकर्ता के साथ libreoffice सोफिस बाइनरी नहीं चला सकते हैं। इसके बजाय सुडो विशेषाधिकार वाले उपयोगकर्ता का उपयोग करें। मेरी जिस्ट https://gist.github.com/nathanielvarona/423bda9e4a8a4f0f9bbf#file-soffice-listener-sh

और जब से आप इसे PHP में उपयोग करने जा रहे हैं। बस PHP-FPM को भी आज़माएं। इसे इंस्टॉल करें और फिर /etc/php5/fpm/pool.d/www.conf फ़ाइल को संशोधित करें।

user = www-data 
group = www-data 

से करने के लिए:

user = ubuntu 
group = ubuntu 

मैं सफलतापूर्वक मेरी VBox VMs साथ एडब्ल्यूएस EC2 में इस दौड़े हैं और यह भी।

export HOME=/tmp && 

शुरुआत करने के लिए है, तो:

export HOME=/tmp && libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path 

कि CentOS 6.5 पर मेरे लिए काम किया, और shell_exec के रूप में()

14

मैं अंत में ... जोड़ें इस का उत्तर मिल गया PHP में

+3

यह वास्तव में होना चाहिए स्वीकृत उत्तर। आपने मेरा दिन बचाया –

+1

आप यह भी उपयोग कर सकते हैं: 'HOME =/tmp libreoffice --headless --convert-to pdf: writer_pdf_Export /my/path/foo.ppt --outdir/my/path' क्योंकि आप केवल HOME चर सेट कर रहे हैं प्रक्रिया। – puzzlement

2

मुझे यह भी त्रुटि थी, लेकिन समस्या रूट पहुंच नहीं थी। आदेश गलत था।

यह मेरे लिए काम किया, लिब्रे ऑफिस में किसी दस्तावेज़ से पाठ हो रही 4.2 .:

soffice --headless --convert-to txt:Text file_to_convert.odt 

(http://ask.libreoffice.org/en/question/14130/how-do-i-install-filters-for-the-soffice-command/)

+0

इसके अलावा मुझे फ़िल्टर नाम 'सोफिस --हेडलेस - कन्वर्ट-टू टीटीटी: "टेक्स्ट" ./*। Docx' (हाँ यह कुबंटू 14.10 पर लिबर ऑफिस इंस्टॉलेशन के लिए है,' एपीटी-फाइल 'पुष्टि करता है कि 'libreoffice-common:/usr/bin/soffice')। – pbhj

4

हम एक ही मुद्दे का सामना करना पड़ा जब soffice द्विआधारी बिना सिर चल रहा है (लिब्रे ऑफिस 5.0.5.2) एक क्लाउडफाउंड्री (डिएगो) कंटेनर में एक नोडजेएस ऐप के हिस्से के रूप में।

ऐसा लगता है कि libreoffice के नए संस्करण लिखने योग्य HOME की अपेक्षा नहीं करते हैं, लेकिन TMPDIR पर लिखने का प्रयास करें।

strace पता चला: 8349 mkdir("app/tmp", 0777) = -1 ENOENT (No such file or directory) 8349 open("app/tmp/lu8349pzgegi.tmp", O_RDWR|O_CREAT|O_EXCL, 0600) = -1 ENOENT (No such file or directory)

साथ TMPDIR=app/tmp

हम एक निर्देशिका है कि अनुप्रयोग प्रक्रिया के द्वारा लिखने योग्य है 'उपयोगकर्ता, यानी CloudFoundry पर TMPDIR=/tmp करने के लिए TMPDIR की स्थापना करके यह तय:

process.env.TMPDIR = "/tmp";

संबंधित मुद्दे

 संबंधित मुद्दे