CentOS 6.4上安装了PHP GD库,但无法正常运行

6

我从Remi仓库安装了php 5.5.6,但 phpinfo()没有显示GD库和 gd_info()函数不存在。

扩展在/etc/php.d/gd.ini中启用,但仍然没有改变。

我还尝试重新安装php-gd库,并且重新安装成功,但是一切都和以前一样。

yum --enablerepo=remi,remi-php55 reinstall php-gd
Loaded plugins: fastestmirror
Setting up Reinstall Process
Loading mirror speeds from cached hostfile
 * base: mirrors.supportex.net
 * epel: mirror.muntinternet.net
 * extras: mirrors.supportex.net
 * remi: mirror.1000mbps.com
 * remi-php55: mirror.1000mbps.com
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.muntinternet.net
Resolving Dependencies
--> Running transaction check
---> Package php-gd.x86_64 0:5.5.6-1.el6.remi will be reinstalled
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================
 Package                    Arch                       Version                                     Repository                      Size
====================================================================================================================================
Reinstalling:
 php-gd                     x86_64                     5.5.6-1.el6.remi                            remi-php55                      66 k

Transaction Summary
====================================================================================================================================
Reinstall     1 Package(s)

Total download size: 66 k
Installed size: 228 k
Is this ok [y/N]: y
Downloading Packages:
php-gd-5.5.6-1.el6.remi.x86_64.rpm                                                                               |  66 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : php-gd-5.5.6-1.el6.remi.x86_64                                                                                       1/1
  Verifying  : php-gd-5.5.6-1.el6.remi.x86_64                                                                                       1/1

Installed:
  php-gd.x86_64 0:5.5.6-1.el6.remi

Complete!

之后我重新启动了服务器,但没有任何改变。

扩展仍然在gd.ini文件中启用。

文件gd.so存在于/usr/lib64/php/modules中。

但是有一个大问题(我认为这就是原因):当从控制台启动php脚本时,我会收到警告:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/gd.so' - libvpx.so.0: cannot map zero-fill pages: Cannot allocate memory in Unknown on line 0

然后我尝试重新安装libvpx,重新启动服务器,但仍然没有改变:相同的php警告unable to load library ....

请帮忙解决 - 这个问题让我疯了 :(


当您输入 php -i | grep gd 或查找 phpinfo(); 时,它是否已启用?根据不同的情况,有不同的 PHP 配置,例如 /etc/php/apache/php.ini/etc/php/php5-fpm/php.ini 等,请确保将其放入正确的配置中。 - Daniel W.
是的,所有功能都已启用。但我刚刚解决了这个问题(实际上与php、GD或其他软件没有太大关系——这是最有趣的事情)。我将在几分钟内添加答案,并进行解释。 - kovpack
1个回答

7

在互联网上长时间搜索后(我过去几天进行了许多尝试,但最后一次尝试是成功的),我找到了解决方案,而且它与GD、PHP或其任何库都没有关系。

我的VPS有1GB的RAM,还剩下450MB可用。但事实证明,内存不是GD所需要的唯一东西 :) 它需要SWAP文件!

我遵循了这些说明-如何在CentOS 6上添加SWAP并添加了1GB SWAP文件。启用后-一切开始正常运行!再也没有烦人的错误 :)


1
哦,非常感谢!我也正好被同样的错误困扰着。 - DaSourcerer
1
你的解决方案是如何修复显示函数不存在的错误消息的?我没有看出它们之间的关联。 - VaTo
也遭遇了这个错误。没有关于为什么会出现这个问题的文档。很高兴我看到了你的解答。另外要补充一点,服务器在使用 SWAP 文件和 GD 库开始工作之前需要重新启动。 - Shadoath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接