php遇到错误Call to 解决方法

刚配置好服务器,运行php的时候提示Call to undefined function imagecreate错误,经过百度发现是php不支持gd库,linux服务器需要重新make,windows下比较简单了,下面是具体的方法

在使用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 gd
PWD => /usr/include/php/ext/gd
_SERVER["PWD"] => /usr/include/php/ext/gd

[root@hotdata gd]# yum -y install m4
Loaded plugins: security
Setting up Install Process
Package m4-1.4.13-5.el6.x86_64 already installed and latest version
Nothing to do
[root@hotdata gd]# yum -y install autoconf
Loaded plugins: security
Setting up Install Process
Package autoconf-2.63-5.1.el6.noarch already installed and latest version
Nothing 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


#富途PHP工程师面经##PHP#
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务