我們現在使用libreoffice --headless
已經有一段時間了,第一次通過Debian,在過去的幾個月中我們切換到了CentOS。我們使用Symfony Process命令轉換docx
到pdf
,簡化的命令看起來像:Libreoffice headless處理結果不返回,但等待超時
libreoffice --headless --convert-to pdf \
--outdir /home/conversionoutdir \
/home/conversionindir/4f00ac05aee274967b.docx
的Symfony的過程,執行上面的命令是相當簡單:
$process = new Process($cmd);
$process->mustRun();
一切都已經工作好吧,但是由於幾天之後轉換沒有完成,並且進程一直持續到60秒超時。
通過在我們的DEV
服務器上進行完全相同的轉換來進行調試,在這裏一切都很好。還試圖轉換小文件和大文件,以查看或達到超時的頁面數量。也直接在命令行上執行命令,轉換也是可以的,並在幾秒鐘內完成。
異常是由我們的應用程序捕獲,並被髮送到記錄器:
過程\「的/ usr/bin中/ LibreOffice的--headless --nologo --nofirststartwizard --norestore - 轉換-to pdf:writer_web_pdf_Export --outdir/home/conversionoutdir /home/conversionindir/4f00ac05aee274967b.docx \「超過了60秒的超時時間。
似乎像PHP不能跟蹤過程了。這裏會發生什麼?任何有關如何進一步調試的線索?
編輯:抽象掉symfony的流程組件,所述conversionoutdir
權限設置爲777和執行下面的代碼段之後,轉換仍保持如果從PHP執行掛:
$output = array();
exec('libreoffice --headless --convert-to pdf \
--outdir /home/conversionoutdir \
/home/conversionindir/4f00ac05aee274967b.docx', $output);
print_r($output);