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

我从我的Ubuntu 12.04.2中的PPA ppa:ondrej/php5-oldstable了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 

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

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

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

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

例如,这个bug已在php5 5.4.17-5 + debphp.org~ + 1中得到修复(在编写此答案时仍有一些dists正在构建)。

sudo apt-get install php5-gd在我不得不因为较旧的apache从稳定切换到旧稳定后为我工作。