Moh*_*ian 5 php linux centos shell-exec libreoffice
我试图转换.docx文件,以.html使用php shell_exec于CentOS 6.5
我的PHP代码:
$command = "libreoffice --headless -convert-to html resume.docx 2>&1";
$result = shell_exec($command);
echo $result;
Run Code Online (Sandbox Code Playgroud)
当我跑步时index.php,http://localhost/converter/它给了我:
javaldx:找不到Java运行时环境!警告:无法从javaldx读取路径/usr/lib64/libreoffice/program/soffice.bin X11错误:无法打开显示:设置DISPLAY环境变量,使用-display选项或检查X-Server的权限(参见"man" X"resp."man xhost"了解详情)`
在终端,它完美地工作:
cd /var/www/html/converter/
libreoffice --healdess -convert-to html resume.docx
在这里它创造resume.html了我的/var/www/html/converter/.
小智 6
嗨我有同样的问题,我想从用PHP创建的DOCS转换PDF,我使用OpenSuse 12.3与LibreOffice,尝试了很多东西,最后我检测到错误在文件夹中:
1.-首先检查你是否在php.ini中没有禁用shell_exec,open_basedir不限制你的访问文件夹.
2.-在shell(终端)中以简单用户身份运行命令导出HOME =/tmp && soffice --headless --convert-to pdf --outdir/srv/www/htdocs// srv/www/htdocs/Creecimientos/SIC /应用程序/根目录/ USUARIOS/2/8_Pagare_CreePersonas.docx
3.-如果它有效,你只需要在你的代码中放入正确的文件夹,当我在PHP中运行此代码时,它会显示一个空白页面,所以我检查apache的access_log是否有任何提示:
[Java framework]函数createSettingsDocument(elements.cxx)中的错误.javaldx失败了!警告:在抛出'com :: sun :: star :: uno :: RuntimeException'的实例后,无法读取javaldx终止时调用的路径
注意:我的错误是使用导出HOME =/tmp,我检查根系统中的文件夹有777用于tmp,但问题是apache无法访问它,可能会搜索脚本的相对文件夹,但是经过测试很多东西我只放了一个文件夹,用于wwwrun HOME =/srv/www/htdocs/folder_with_777
这是我的最终代码,有效..
<?php
function word2pdf()
{
echo "Procesando";
$result = shell_exec('export HOME=/srv/www/htdocs/Creecimientos/sic/ && soffice --headless --convert-to pdf --outdir /srv/www/htdocs/Creecimientos/sic/ /srv/www/htdocs/Creecimientos/sic/app/webroot/usuarios/2/8_Pagare_CreePersonas.docx');
echo $result;
}
word2pdf();
?>
Run Code Online (Sandbox Code Playgroud)
事实上,它使用writer_pdf_Export打印:convert srv/www/htdocs/Creecimientos/sic/app/webroot/usuarios/2/8_Pagare_CreePersonas.docx - > /srv/www/htdocs/Creecimientos/sic//8_Pagare_CreePersonas.pdf .
我在desesperate模式之前做了其他更改,但是他们都没有解决问题,试图将所有者改为soffice,发现它是巫婆$ ls -l $(自由的libreoffice),尝试用777等等.
/* This command will work on centos 6 /7 with installation of libreoffice headless package */
First install package on centos as :
yum install libreoffice-headless
/* following code work to extract text format from */
<?php
$result = exec("export HOME=/tmp/ && /usr/bin/libreoffice --headless --convert-to txt:Text --outdir /tmp filePath");
var_dump($result);
?>
Run Code Online (Sandbox Code Playgroud)
两件事,第一命令是soffice --headless,
第二我有一个类似的 javaldx 错误,它与权限有关。
当以 root 身份执行时,它工作正常,但 php 以 www-data 执行。
如果有人知道从 php 执行 libreoffice 的好方法请告诉我。
正如我得到的一句话error code 77:
[Java framework] Error in function createSettingsDocument (elements.cxx).
javaldx failed!
Warning: failed to read path from javaldx
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6444 次 |
| 最近记录: |