1、今天,在Linux上通过libreoffice调用外部程序把docx文档转换为pdf的时候,报了一个错:

[Java framework] Error in function createSettingsDocument (elements.cxx).
javaldx failed!
Warning: failed to read path from javaldxCommand 'soffice --headless --invisible --convert-to pdf /usr/local/测试.docx --outdir /usr/local/ ' returned non-zero exit status 77.

2、首先呢,我是先通过教程在Linux上安装好libreoffice,这一步可以省略不看,主要是记录安装过程:

cenos服务器执行以下命令安装libreoffice
[root@CentOS~]# yum install libreoffice
[root@CentOS~]# yum install libreoffice-headless
[root@CentOS~]# mkdir /usr/share/fonts/simsun
##拷贝windows中的simsun.ttc到/usr/share/fonts/simsun/然后执行以下命令
[root@CentOS~]#cd /usr/share/fonts/simsun [root@CentOS~]#mkfontscale
[root@CentOS~]#mkfontdir
[root@CentOS~]#fc-cache -fv

3、其中,django项目通过wsgi关联部署到apache中,其中apache安装后默认是使用daemon用户和用户组的,在/usr/local/apache/conf底下的httpd.conf底下配置了daemon用户和用户组,具体我是参考这篇文章的:https://blog.csdn.net/yufen9987/article/details/76718290 ,其中我把底下的apcache_django_wsgi_conf的用户和用户组改为daemon,之后Django项目在授予daemon权限,利用命令:

 chown -R daemon:daemon demand_jango

4、之后通过代码调用soffice外部程序,执行命令,把docx转换为pdf的时候,就报了第一点的提出的错误,原因就是因为daemon(守护精灵这个用户)没有权限执行调用soffice这个外部程序,在linux底下这个daemon是没有对应的权限去执行这个soffice外部程序的,而且也没有对应的用户目录。

5、解决办法如下:

(1)、首先,停掉apache服务,通过命令service httpd stop

(2)、接着,新增多一个用户和用户组,使用以下命令:

groupadd apache
useradd -s /sbin/nologin -g apache apache
usermod -L apachechown -R apache:apache /home/apache

(3)、接着修改apache的配置文件,/usr/local/apache/conf底下的httpd.conf:

User apache
Group apache

(4)、接着修改apcache_django_wsgi_conf的用户和用户组,改为apache:

WSGIDaemonProcess demand_jango python-path=/usr/lib64/python2.7/site-packages user=apache group=apache

(5)、接着在授予项目apache权限:

 chown -R apache:apache demand_jango

(6)、启动apache服务器,使用命令:service httpd start

注:其中的话,如果这个apache部署多个项目的话,记得另外一个项目的apcache_django_wsgi_conf也要改成apache。

6、重启之后,可以会出现一种情况,就是apache跑着跑着就超时,访问不了了,主要报错信息:

Timeout when reading response headers from daemon process 'demand_jango'Resource temporarily unavailable: [client 112.134.52.134:356] mod_wsgi (pid=4589): Unable to connect to WSGI daemon process

原因:在Linux新建的一个用户的话,会默认限制访问的进程数,一般几分钟之后,就超过了进程数,就会一直刷刷刷,访问就失败超时,root用户是不做限制的

解决:

(1)、使用root用户登陆,进入到/etc/security/limits.d/,并编辑20-nproc.conf,使用命令如下:

cd /etc/security/limits.d/
vi 20-nproc.conf

增加多一行信息,指定新建的用户限制的信息:

apache     soft    nproc     60000

(2)、编辑  /etc/security/limits.conf,使用vi命令打开这个文件,并增加内容:

apache soft nofile 65535
apache hard nofile 65535

之后,重启服务器就可以了,具体可以看参考文章,比较详细,参考文章如下:https://blog.csdn.net/qq_35963057/article/details/81489907

Django项目调用外部程序soffice报错subprocess.CalledProcessError: Command 'soffice --headless --convert-to pdf相关推荐

  1. 报错subprocess.CalledProcessError: Command ‘[‘which‘, ‘g++‘]‘ returned non-zero exit status 1.

    在安装torch的时候,torch安装成功,但是torch-cluster.torch-sparse等报错 Traceback (most recent call last):File "& ...

  2. Linux上的Django项目,下载文件报错,编码格式错误解决

    1.Django中,下载文件,报编码错误,具体报错信息当时忘记记录了,这里只记录一下解决办法,网上大部分的解决方法都是说在/usr/lib/python3.6/site-packages目录底下新建一 ...

  3. Linux的pycharm中出现subprocess.CalledProcessError: Command ‘XXX‘ returned non-zero exit status 1.

    深夜写一个神坑,虚拟机linux当中的pycharm运行subprocess调用命令行,出现subprocess.CalledProcessError: Command 'XXX' returned ...

  4. tornado创建项目后build vxworks报错unable to allocate heap, heap_chunk_size 587202560, Win32 error 0

    tornado创建项目后build vxworks报错unable to allocate heap, heap_chunk_size 587202560, Win32 error 0 build报错 ...

  5. Eclipse中创建SpringBoot项目流程,及报错解决方案

    Eclipse中创建SpringBoot项目流程,及报错解决方案 参考文章: (1)Eclipse中创建SpringBoot项目流程,及报错解决方案 (2)https://www.cnblogs.co ...

  6. vue cli 项目在打包时候报错 API fatal error handler returned after process out of memory

    问题描述 vue cli 项目在打包时候报错:API fatal error handler returned after process out of memory. 问题分析 从给出的提示可以看出 ...

  7. 使用 Feign 调用分页接口报错:Method has too many Body parameters(亲测)

    一.背景 接口定义: @ApiOperation(value = "分页查询会话") @PostMapping(Routes.SESSIONS_QUERY) JsonResult& ...

  8. 【报错笔记】Eclipse导入Maven项目时pom.xml报错,项目上有红感叹号。

    Eclipse导入Maven项目时pom.xml报错,项目上有红感叹号. 错误原因: pom.xml中依赖的jar包在本地仓库中不存在,但是在maven/conf/settings.xml中定义了阿里 ...

  9. 项目启动时flowable报错提示 version mismatch: library version is *, db version is *

    项目启动时flowable报错提示 version mismatch: library version is *, db version is * 可能原因 1.项目中的flowable版本更换了但是 ...

最新文章

  1. 基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词
  2. ubuntu16.04中成功安装ROS后,小海龟示例
  3. java对象内存占用情况分析
  4. python shelve模块
  5. 什么是Web渗透测试
  6. java连接mysql表格_java中表格连接数据库
  7. 关于 TCP window size
  8. Ocelot中文文档-Raft(实验功能不能用于生产环境)
  9. Android字体设置,Roboto字体使用
  10. ElasticSearch
  11. cmip5数据读取Matlab,CMIP5数据下载-其它文档类资源
  12. matlab 日期加小时数_将EXCEL 中的日期 时间 导入到MATLAB坐标轴中
  13. 哪一款信用卡累计兑换航空里程最划算?
  14. 各个版本的金蝶kis的区别
  15. 学习记录1.0(基础算法)
  16. mysql给所有表添加字段
  17. 数独-图片定位分割数字
  18. vue根据表格分页,前端实现方法
  19. mmdetection 安装配置全过程
  20. pycharm下django案例的环境搭建运行

热门文章

  1. 三、Spring的@Scope设置组件作用域
  2. Nike Hyperdunk 2012 Men's Basketball Shoes Black/Gorge Green
  3. 《学习之道》第十三章练习大脑,改变思维
  4. Oracle 数据库和监听器开机自启动两种实现方法
  5. Docker+Nextcloud快速部署个人网盘
  6. require js
  7. Javascript 的函数式对象(三)利用闭包模拟类的静态变量和方法
  8. Godaddy Windows主机组件支持情况
  9. Html Picture
  10. 7-56 家庭房产 (25 分)