php遇到錯(cuò)誤Call to undefined function ImageCreate()解決方法
目錄
- 常規(guī)Ubuntu與windows
- 編譯make安裝方法
- phpize方法
- centos安裝GD庫(kù)
在使用php處理一些圖像時(shí),有時(shí)會(huì)出現(xiàn)諸如這樣的錯(cuò)誤:Call to undefined function imagecreate()
這是由于沒(méi)有安裝或是沒(méi)有開(kāi)啟php的gd庫(kù)導(dǎo)致的問(wèn)題。
常規(guī)Ubuntu與windows
解決方案:
一、在Linux系統(tǒng)(這里用的是Ubuntu系統(tǒng))下
首先在終端輸入下列命令:
sudo apt-get install php5-gd
這樣就已經(jīng)安裝完php的gd庫(kù)了。如果使用的是apache服務(wù)器,這時(shí)還需重啟下服務(wù)器:
sudo service apache2 restart
如果是nginx則可用可不用。
二、在windows系統(tǒng)下
打開(kāi)php安裝目錄下的php.ini配置文件,找到這一行:
;extension=php_gd2.dll
將這一行前面的;號(hào)去掉,然后保存。這樣已經(jīng)開(kāi)啟了gd擴(kuò)展庫(kù)。
最后重啟下服務(wù)器就行了。
編譯make安裝方法
在編譯配置擴(kuò)展的時(shí)候就沒(méi)加上gd的同學(xué)可以參考下面的方法
找到安裝php的目錄下,重新配置擴(kuò)展
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有了就行,其他的擴(kuò)展看需求
vim打開(kāi)php.ini
搜索
#vim命令關(guān)鍵字搜索: (1) 點(diǎn)ESC (2)/“關(guān)鍵字”
/extension=php_gd2.dll
找到這行去掉前面的分號(hào)“;”
保存退出,重啟nginx,apache2重啟apache2
/etc/init.d/httpd restart
index.php查找gd,,,成功!
phpize方法
原因:未安裝php的gd庫(kù),主要處理圖片的庫(kù)
解決方法:
在已經(jīng)安裝php的情況先,需要對(duì)PHP進(jìn)行擴(kuò)展,加入gd庫(kù)
1:進(jìn)入到php源碼里面的gd目錄下
cd /usr/src/php-5.5.38/ext/gd/
2:執(zhí)行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
會(huì)報(bào)錯(cuò),執(zhí)行下面命令:
yum install libpng
yum install libpng-devel
yum install freetype-devel
此時(shí)安裝完成后會(huì)生成一個(gè)gd.so的文件,記住這個(gè)路徑
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的路徑加入進(jìn)去,如下加入到最后面就行
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服務(wù)
/etc/init.d/httpd restart
centos安裝GD庫(kù)
采用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
直接使用yum命令安裝不成功,錯(cuò)誤信息如下:
主要提示信息為需要安裝依賴包,可是我已經(jīng)安裝了
# yum install gd gd-devel php-gd Loaded plugins: security Setting up Install Process Package gd-2.0.35-11.el6.x86_64 already installed and latest version Resolving 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 Resolution Error: 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
到此這篇關(guān)于php遇到錯(cuò)誤Call to undefined function ImageCreate()解決方法的文章就介紹到這了,更多相關(guān)undefined function ImageCreate內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
版權(quán)聲明:
本站所有文章和圖片均來(lái)自用戶分享和網(wǎng)絡(luò)收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系網(wǎng)站客服處理。