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 版本较旧,我不得不从稳定版切换到旧稳定版,之后它对我来说很有用。