You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yii2调用TesseractOCR出现proc_open创建进程失败错误码-5问题

报错原因

报错proc_open(): CreateProcess failed, error code - 5是Windows环境下的典型错误,由两个核心问题导致:

  • executable() 方法传入路径错误:填写的是Tesseract的安装文件夹路径,不是tesseract可执行程序的完整路径,插件无法找到可执行文件启动进程
  • 权限不足:运行PHP的Web服务进程用户(IIS对应IUSR、Apache/Nginx一般对应NETWORK SERVICE用户)没有Tesseract安装目录、待识别图片所在目录的访问/执行权限,Windows系统返回错误码-5(权限拒绝)
修复方案
  1. 修正可执行文件路径
    将executable()的入参改为tesseract.exe的完整绝对路径,不要只传安装目录:
$tesseract = new TesseractOCR('C:\Users\users\Desktop\FolderName\text.png');
// 补全可执行文件名,路径含空格直接写全即可
$tesseract->executable('C:\Program Files\Tesseract-OCR\tesseract.exe');
$extractText = $tesseract->run();
  1. 配置目录权限
  • 给Web服务运行用户分配C:\Program Files\Tesseract-OCR目录的读取、执行权限
  • 不建议把待识别的图片、PDF放在桌面这类个人用户私有目录,最好单独创建公共工作目录存放待识别文件,同时给Web服务运行用户分配该目录的读取、写入权限(Tesseract运行时会生成临时文件)
  1. 前置验证
    配置完成后先在命令行执行以下命令验证环境可用性,命令行能正常返回识别文本再调用代码:
"C:\Program Files\Tesseract-OCR\tesseract.exe" C:\Users\users\Desktop\FolderName\text.png stdout
额外注意

Tesseract本身不支持直接识别PDF文件,需要先安装poppler工具将PDF逐页转成图片格式,再传入Tesseract提取文本。

内容的提问来源于stack exchange,提问作者Dulf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 16:45:45