php遇到错误Call to undefined function ImageCreate()解决方法

admin3年前PHP教程27
目录
常规Ubuntu与windows编译make安装方法phpize方法centos安装GD库

在使用php处理一些图像时,有时会出现诸如这样的错误:Call to undefined function imagecreate()

这是由于没有安装或是没有开启php的gd库导致的问题。

 

常规Ubuntu与windows

解决方案:

一、在linux系统(这里用的是Ubuntu系统)下

首先在终端输入下列命令:

sudo apt-get install php5-gd

这样就已经安装完php的gd库了。如果使用的是apache服务器,这时还需重启下服务器:

sudo service apache2 restart

如果是nginx则可用可不用。

二、在windows系统下

打开php安装目录下的php.ini配置文件,找到这一行:

;extension=php_gd2.dll

将这一行前面的;号去掉,然后保存。这样已经开启了gd扩展库。

最后重启下服务器就行了。

 

编译make安装方法

在编译配置扩展的时候就没加上gd的同学可以参考下面的方法

找到安装php的目录下,重新配置扩展

make clean
./configure --prefix=/png/php/5.6.40 --enable-fpm --with-apxs2=/usr/bin/apxs2 --enable-maintainer-zts -with-mysqli --with-pdo-mysql --with-pdo-sqlite --with-gd
make
make test
make install

./configure --with-gd有了就行,其他的扩展看需求

vim打开php.ini

搜索

#vim命令关键字搜索: (1) 点ESC (2)/“关键字”

/extension=php_gd2.dll

找到这行去掉前面的分号“;”

保存退出,重启nginx,apache2重启apache2

/etc/init.d/httpd restart

index.php查找gd,,,成功!

 

phpize方法

原因:未安装php的gd库,主要处理图片的库

解决方法:

在已经安装php的情况先,需要对PHP进行扩展,加入gd库

1:进入到php源码里面的gd目录下

cd /usr/src/php-5.5.38/ext/gd/

2:执行phpize (命令在php/bin/目录下)

phpize

3:编译安装

./configure --with-php-config=/usr/local/php5/bin/php-config --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd
make
make install

会报错,执行下面命令:

yum install libpng
yum install libpng-devel
yum install freetype-devel

此时安装完成后会生成一个gd.so的文件,记住这个路径

ls /usr/local/php5/lib/php/extensions/no-debug-non-zts-20121212/
curl.so gd.so opcache.so pcntl.so pdo_mysql.so

4:修改php的配置文件php.ini将gd.so的路径加入进去,如下加入到最后面就行

vim /usr/local/php5/php.ini
[root@slb03 ~]# tail -1 /usr/local/php5/php.ini
extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20121212/gd.so

5:重启apache服务

/etc/init.d/httpd restart

 

centos安装GD库

采用phpize的方式安装,也不成功

提示Cannot find config.m4.

[root@hotdata gd]# php -i | grep -i --color gdPWD => /usr/include/php/ext/gd_SERVER["PWD"] => /usr/include/php/ext/gd[root@hotdata gd]# yum -y install m4Loaded plugins: securitySetting up Install ProcessPackage m4-1.4.13-5.el6.x86_64 already installed and latest versionNothing to do[root@hotdata gd]# yum -y install autoconfLoaded plugins: securitySetting up Install ProcessPackage autoconf-2.63-5.1.el6.noarch already installed and latest versionNothing to do[root@hotdata gd]# /usr/bin/phpize Cannot find config.m4. Make sure that you run "/usr/bin/phpize" in the top level source directory of the module

直接使用yum命令安装不成功,错误信息如下:
主要提示信息为需要安装依赖包,可是我已经安装了

# yum install gd gd-devel php-gdLoaded plugins: securitySetting up Install ProcessPackage gd-2.0.35-11.el6.x86_64 already installed and latest versionResolving Dependencies--> Running transaction check---> Package gd-devel.x86_64 0:2.0.35-11.el6 will be installed--> Processing Dependency: libpng-devel for package: gd-devel-2.0.35-11.el6.x86_64--> Processing Dependency: libjpeg-devel for package: gd-devel-2.0.35-11.el6.x86_64--> Processing Dependency: libXpm-devel for package: gd-devel-2.0.35-11.el6.x86_64--> Processing Dependency: libX11-devel for package: gd-devel-2.0.35-11.el6.x86_64--> Processing Dependency: freetype-devel for package: gd-devel-2.0.35-11.el6.x86_64--> Processing Dependency: fontconfig-devel for package: gd-devel-2.0.35-11.el6.x86_64---> Package php-gd.x86_64 0:5.4.45-56.el6.art will be installed--> Processing Dependency: php-common(x86-64) = 5.4.45-56.el6.art for package: php-gd-5.4.45-56.el6.art.x86_64--> Processing Dependency: libt1.so.5()(64bit) for package: php-gd-5.4.45-56.el6.art.x86_64--> Running transaction check---> Package fontconfig-devel.x86_64 0:2.8.0-5.el6 will be installed---> Package freetype-devel.x86_64 0:2.3.11-17.el6 will be installed--> Processing Dependency: freetype = 2.3.11-17.el6 for package: freetype-devel-2.3.11-17.el6.x86_64---> Package libX11-devel.x86_64 0:1.6.4-3.el6 will be installed--> Processing Dependency: libX11 = 1.6.4-3.el6 for package: libX11-devel-1.6.4-3.el6.x86_64--> Processing Dependency: pkgconfig(xcb) >= 1.11.1 for package: libX11-devel-1.6.4-3.el6.x86_64--> Processing Dependency: pkgconfig(xproto) for package: libX11-devel-1.6.4-3.el6.x86_64--> Processing Dependency: pkgconfig(xcb) for package: libX11-devel-1.6.4-3.el6.x86_64--> Processing Dependency: pkgconfig(kbproto) for package: libX11-devel-1.6.4-3.el6.x86_64---> Package libXpm-devel.x86_64 0:3.5.10-2.el6 will be installed--> Processing Dependency: libXt.so.6()(64bit) for package: libXpm-devel-3.5.10-2.el6.x86_64---> Package libjpeg-turbo-devel.x86_64 0:1.2.1-3.el6_5 will be installed---> Package libpng-devel.x86_64 2:1.2.49-2.el6_7 will be installed---> Package php-gd.x86_64 0:5.4.45-56.el6.art will be installed--> Processing Dependency: php-common(x86-64) = 5.4.45-56.el6.art for package: php-gd-5.4.45-56.el6.art.x86_64---> Package t1lib.x86_64 0:5.1.2-6.el6_2.1 will be installed--> Running transaction check---> Package freetype.x86_64 0:2.3.11-15.el6_6.1 will be updated---> Package freetype.x86_64 0:2.3.11-17.el6 will be an update---> Package libX11.x86_64 0:1.6.0-6.el6 will be updated---> Package libX11.x86_64 0:1.6.4-3.el6 will be an update--> Processing Dependency: libX11-common = 1.6.4-3.el6 for package: libX11-1.6.4-3.el6.x86_64---> Package libXt.x86_64 0:1.1.4-6.1.el6 will be installed---> Package libxcb-devel.x86_64 0:1.12-4.el6 will be installed--> Processing Dependency: libxcb = 1.12-4.el6 for package: libxcb-devel-1.12-4.el6.x86_64--> Processing Dependency: pkgconfig(xau) >= 0.99.2 for package: libxcb-devel-1.12-4.el6.x86_64--> Processing Dependency: libxcb-xkb.so.1()(64bit) for package: libxcb-devel-1.12-4.el6.x86_64--> Processing Dependency: libxcb-xinput.so.0()(64bit) for package: libxcb-devel-1.12-4.el6.x86_64--> Processing Dependency: libxcb-sync.so.1()(64bit) for package: libxcb-devel-1.12-4.el6.x86_64--> Processing Dependency: libxcb-present.so.0()(64bit) for package: libxcb-devel-1.12-4.el6.x86_64--> Processing Dependency: libxcb-dri3.so.0()(64bit) for package: libxcb-devel-1.12-4.el6.x86_64---> Package php-gd.x86_64 0:5.4.45-56.el6.art will be installed--> Processing Dependency: php-common(x86-64) = 5.4.45-56.el6.art for package: php-gd-5.4.45-56.el6.art.x86_64---> Package xorg-x11-proto-devel.noarch 0:7.7-14.el6 will be installed--> Running transaction check---> Package libX11-common.noarch 0:1.6.0-6.el6 will be updated---> Package libX11-common.noarch 0:1.6.4-3.el6 will be an update---> Package libXau-devel.x86_64 0:1.0.6-4.el6 will be installed---> Package libxcb.x86_64 0:1.9.1-3.el6 will be updated---> Package libxcb.x86_64 0:1.12-4.el6 will be an update---> Package php-gd.x86_64 0:5.4.45-56.el6.art will be installed--> Processing Dependency: php-common(x86-64) = 5.4.45-56.el6.art for package: php-gd-5.4.45-56.el6.art.x86_64--> Finished Dependency ResolutionError: Package: php-gd-5.4.45-56.el6.art.x86_64 (atomic) Requires: php-common(x86-64) = 5.4.45-56.el6.art Installed: php-common-5.6.16-1.el6.remi.x86_64 (@remi-php56) php-common(x86-64) = 5.6.16-1.el6.remi Available: php-common-5.3.3-49.el6.x86_64 (base) php-common(x86-64) = 5.3.3-49.el6 Available: php-common-5.4.45-54.el6.art.x86_64 (atomic) php-common(x86-64) = 5.4.45-54.el6.art Available: php-common-5.4.45-56.el6.art.x86_64 (atomic) php-common(x86-64) = 5.4.45-56.el6.art Available: php55w-common-5.5.38-1.w6.x86_64 (webtatic) php-common(x86-64) = 5.5.38-1.w6 Available: php56w-common-5.6.40-1.w6.x86_64 (webtatic) php-common(x86-64) = 5.6.40-1.w6 Available: php70w-common-7.0.33-1.w6.x86_64 (webtatic) php-common(x86-64) = 7.0.33-1.w6 Available: php71w-common-7.1.26-1.w6.x86_64 (webtatic) php-common(x86-64) = 7.1.26-1.w6 Available: php71w-common-7.1.27-1.w6.x86_64 (webtatic) php-common(x86-64) = 7.1.27-1.w6 Available: php71w-common-7.1.28-1.w6.x86_64 (webtatic) php-common(x86-64) = 7.1.28-1.w6 Available: php71w-common-7.1.29-1.w6.x86_64 (webtatic) php-common(x86-64) = 7.1.29-1.w6 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest

最后采用这种方式安装成功了

yum install php-gd --enablerepo=remi-php56

到此这篇关于php遇到错误Call to undefined function ImageCreate()解决方法的文章就介绍到这了,更多相关undefined function ImageCreate内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

江苏BGP高防服务器的性能指标怎么看

江苏BGP高防服务器的性能指标怎么看?选择江苏BGP高防服务器时,以下几个性能指标是需要关注的:CPU:中央处理器,是服务器的核心部件,处理服务器上的各种计算任务,CPU的核数、主频等都会影响服务器的...

gpu服务器与FpgA云服务器有什么区别美国GPU服务器有哪些方面的优点

gpu服务器(gpucloudcomputing)是基于gpu应用的计算服务,具有实时高速的并行计算和浮点计算能力,适应用于3d图形应用程序、视频解码、深度学习、科学计算等应用场景。我们提供和标准云服...

php之app消息推送案例教程

如何用php实现app消息推送现在有很多的消息推送厂商,比如阿里云的消息推送,极光推送,融云的消息推送。他们的原理都是把sdk内置在app里面,达到消息推送的目的,通过一张图来了解一下,看不懂不要紧,...

编程入门先学什么(如何学会编程写代码)

编程入门先学什么最近有许多关于学习编程的争辩。不仅仅是由于与软件开发公司公开的待应聘的职位数量相比较契合招聘要求的人远远无法满足缺口,编程也是工资最高和工作满足感最强的许多职业之一。也难怪越来越多的人...

如何选择合适的GPU服务器?成都GPU服务器选购注意事项?

如何选择合适的GPU服务器?选择GPU服务器时首先要考虑业务需求来选择适合的GPU型号。在HPC高性能计算中还需要根据精度来选择,比如有的高性能计算需要双精度,这时如果使用P40或者P4就不合适,只能...

便宜好用的美国大带宽服务器怎么买

便宜好用的美国大带宽服务器怎么买?购买便宜好用的美国大带宽服务器通常需要以下几个步骤:确定购买目的:首先,您需要确定您购买服务器的目的是什么。例如,是用于网站托管、视频流媒体、游戏服务器还是其他用途。...