已安装 PDFLib 但在代码中不可用或无法通过 phpinfo() 看到

PDFLib installed but not available in code or visible through phpinfo()

我认为我在系统 (Ubuntu 18.04) 上安装 PDFlib 方面做得很好,但还不完全正确。到目前为止我做了什么:

现在,当我从 Web 端 运行 phpinfo(); 通过文件时,根本没有提到 PDFlib。当我通过 CLI 运行 它时,一切似乎都很好。

我还尝试通过 CLI 和 Web 创建一个新的 PDFlib() 实例。 CLI 有效,网络无效。

我是不是在安装过程中遗漏了什么?

I also tried creating a new PDFlib() instance through CLI and web. CLI works, web doesn't.

这是一个典型的情况。 Web 服务器中的 PHP CLI 和 PHP 可以有不同的配置。因此,请检查 extension_dir 以及加载到您的网络服务器 phpinfo() 输出中的 php.ini。然后你做了同样的配置。请同时检查 PHP/Webserver 日志文件中是否有任何错误消息。也许它也可能是 NTS/TS(线程)问题,但这会在错误消息中提到。

今天不是一个好的工程师,我同时做了几件事,所以我不知道最后到底是什么。尽管如此,我还是会写下我的步骤,因为它现在有效。

  • 我通过 php -iphpinfo(); 仔细检查了配置文件路径和文件,以了解 CLI 和 Web 前端之间的区别。
  • 我从两个 php.ini 文件中删除了 extension=php_pdflib
  • 我将 php_pdflib.so 从扩展目录移到了上一层,它现在直接位于 /usr/lib/php
  • 我也将它重命名为 phplib.so(但那更多是为了故意破坏,看看会发生什么
  • 我在 /etc/php/7.3/fpm/conf.d 中创建了一个 30-pdflib.ini 文件,并在其中只写了 extension=/usr/lib/php/pdflib.so
  • 将该行添加到 /etc/php/7.3/cli/php.ini 以查看是否存在差异
  • 我尝试重启 Apache2 几次,但是 phpinfo() 加载的配置文件或模块没有显示任何变化
  • 我做了一个sudo reboot
  • 再次检查,现在为 CLI 和 web 加载了 PDFlib

所以,不确定硬重启是否真的解决了这个问题,但在我看来是这样。也许这对其他人有帮助。