安装 PHP 7.2 扩展 pdflib,模块错误

Installing PHP 7.2 extension pdflib, module error

我正在尝试在我之前已经安装的 PHP 7.2 上安装 pdflib。不知何故,我不久前用 Homebrew 重组了我的 PHP 安装。在那次重组之前,我在 /usr/local/etc/php/7.2/extensions 中进行了扩展。我只需要在 php.ini 中引用我的 .so 文件,一切正常。

重组后我使用 pecl 安装了新的扩展。现在我在 usr/local/lib/php/pecl/20170718 中有了我的扩展,它在我的 php.ini 中也被引用为 extension_dir。但是,如果我将 pdflib.so 放入此目录并将其注册到 php.ini 中,则会出现以下错误:

Warning: PHP Startup: PDFlib: Unable to initialize module
Module compiled with module API=20160303
PHP    compiled with module API=20170718
These options need to match`Warning: PHP Startup: PDFlib: Unable to 
initialize module

我该如何解决这个问题,或者有没有办法回滚到旧配置?

Module compiled with module API=20160303
PHP    compiled with module API=20170718

此消息表明已加载 PDFlib DSO,它是为较旧的 PHP(PHP 7.1)构建的。

我看到两个可能的问题:

  • 不小心加载了一个不同的扩展。例如由于名称不同。 (php_pdflib.so 对比 pdf.so)
  • 你的 PECL 构建出错了,它是针对旧的 PHP 7.1.
  • 构建扩展

我会推荐

  • 检查你的 php.ini 并删除所有带有 pdf 的扩展
  • 从官网下载最新的PDFlib 9.1.2并解压
  • 将正确的 DSO (php_pdflib.so) 复制到您的 extension_dir
  • 立即将 extension=php_pdflib.so 添加到您的 php.ini

希望对您有所帮助, 莱纳