PHP5.4 无法加载动态库gd.so未定义符号:gdGetC

PHP5.4 无法加载动态库gd.so未定义符号:gdGetC

ppa:ondrej/php5-oldstable我在 Ubuntu 12.04.2 中从 PPA 安装了 PHP5.4 。

然后我的所有图像处理脚本都坏了。原来是php5-gd库没有加载。

$ php -a
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/gd.so' - /usr/lib/php5/20100525/gd.so: undefined symbol: gdGetC in Unknown on line 0
Interactive mode enabled

这是我的机器上安装的一些与 GD 相关的软件包(希望有所帮助,如果您需要了解其他软件包的详细信息,请告诉我):

ii  libgd2-xpm                                    2.0.36~rc1~dfsg-6ubuntu2                GD Graphics Library version 2
ii  libgd2-xpm:i386                               2.0.36~rc1~dfsg-6ubuntu2                GD Graphics Library version 2
ii  libgd3                                        2.1.0-2~precise+1                       GD Graphics Library
ii  php5-gd                                       5.4.17-4+debphp.org~precise+1           GD module for php5

有没有什么办法解决这一问题?

答案1

真正的罪魁祸首是 PHP 5.4 GD 扩展与 libgd (>= 2.1.0) 不兼容。由于 gd.so 是动态扩展,因此无法在编译时检测到缺失的符号。

无论如何,php5-oldstable 已经更新:

  • libgd 2.1.x 已被删除
  • 新的 php5 已更新,强制依赖 libgd 2.0.x

例如,这个错误已经在 php5 5.4.17-5+debphp.org~+1 中修复(在撰写这个答案时,一些 dists 仍在构建)。

答案2

sudo apt-get install php5-gd由于 Apache 版本较旧,我不得不从稳定版切换到旧稳定版,之后它对我来说很有用。

相关内容