我已经设置了Apache + Rails + Passenger并正确加载了应用程序(大部分)。该应用程序使用Tesseract和GS将PDF转换为图像,然后获取文本并将其插入数据库。
当我使用rails s测试应用程序时,一切正常,但是当我尝试从乘客实例运行某些功能时,我的apache日志中出现以下错误:
App 14107 stderr:sh:tesseract:command not found
以下代码发生错误:
%x(gs -dNOPAUSE -dBATCH -sDEVICE=pngalpha -r300 -sOutputFile="page%03d".png #{self.doc.path})
%x(for f in page*.png ; do tesseract $f $f.out; done)
我的rails production.log文件中没有任何内容表明存在任何错误。
我正在运行CentOS 6,并使用本指南构建了我的tesseract: https://www.simpleservers.co.uk/clients/whmcs/knowledgebase/600/Install-Tesseract-OCR-libs-from-sources-in-Centos.html
乘客运行的用户也可以运行命令tesseract。我检查了它的控制台,但由于某种原因,乘客无法运行它。我是否需要以某种方式为apache用户启用它?
由于
答案 0 :(得分:2)
感谢贝壳指向正确的方向。这就是我解决这个问题的原因:
Apache无法调用tesseract,因此我不得不将其添加到路径中。根据这个答案(How to add path to Apache),我去了/ etc / sysconfig / httpd(这是CentOS特定的)并添加了一行:
export PATH=<the path>
要获取路径,我只是在控制台中运行它:
env
并将输出作为PATH。