关于   小悟志   网站地图   归档   友情链接   联系   Feed

   云上小悟  +  

编译安装PHP7,让GD库支持JPG和PNG

2017年5月30日 / 225次阅读  网站建设
标签:PHP

拍拍贷

文章《编译安装PHP7,让GD库支持JPG和PNG》的特色图片

麦新杰上一次编译安装PHP7的时候,犯了一个错误,即在编译参数中增加了--with-gd,但是这个以bundled的方式安装的GD,并不支持JPG格式的图片(支持PNG也是因为本地编译环境有libpng的库)。然后,尝试了通过编译/php/ext目录下的动态链接库,再修改php.ini文件,但是这个方法行不通,完全没有效果。(可能是因为在编译安装PHP7的时候,已经绑定了GD,后再想引入动态链接库,已经不可行,只能重新编译)

(第一个编译安装PHP7:在Ubuntu中编译安装PHP7

 

于是,麦新杰开始第二次编译安装PHP7尝试。这一次,直接用参数--with-gd,--with-jpeg-dir,--with-png-dir,结果是成功的,安装的PHP支持GD,并且GD支持JPG和PNG。

GD Support enabled
GD Version bundled (2.1.0 compatible)
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 9 compatible
PNG Support enabled
libPNG Version 1.6.29
WBMP Support enabled
XBM Support enabled

 

编译安装PHP7的configure如下:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql-sock=/run/mysqld/mysqld.sock --enable-mbstring --with-curl --with-gd --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/png

需要提前安装好jpeg和png的库,同样也是通过编译安装的方式,在配置时,只需制定一个路径,很简单。

jpeg库下载:http://www.ijg.org/

png库下载:http://www.libpng.org/pub/png/libpng.html

 

2017-06-18:

用这个configure在我的阿里云上make的时候,出现一个错误:

/usr/bin/ld: ext/curl/.libs/interface.o: undefined reference to symbol 'CRYPTO_set_id_callback@@OPENSSL_1.0.0'
//lib/x86_64-linux-gnu/libcrypto.so.1.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:273: recipe for target 'sapi/cli/php' failed
make: *** [sapi/cli/php] Error 1
root@iZ239r252v4Z:~/php-7.0.16#

在网上找了半天,找到一个解决方法:

I got the following error when building PHP with cURL (on openSuSE 12.1):

/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: ext/curl/.libs/interface.o: undefined reference to symbol 'CRYPTO_set_id_callback'
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: note: 'CRYPTO_set_id_callback' is defined in DSO /lib64/libcrypto.so.1.0.0 so try adding it to the linker command line
/lib64/libcrypto.so.1.0.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

Not sure why it's happening, but a look in Makefile showed that EXTRA_LIBS contained "-lcrypt" twice:

EXTRA_LIBS = -lcrypt -lz -lresolv -lcrypt -lpq -lrt -lpq -lpng -lz -ljpeg -lcurl -lrt -lm -ldl -lnsl -lxml2 -lzlcurl -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt

Changing the last "-lcrypt" to "-lcrypto" resolved the problem:

EXTRA_LIBS = -lcrypt -lz -lresolv -lcrypt -lpq -lrt -lpq -lpng -lz -ljpeg -lcurl -lrt -lm -ldl -lnsl -lxml2 -lzlcurl -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypto

可能是因为configure不同导致的,反正还没搞清楚原因。

 

2017-07-15:

上传png图片出现http错误的提示,可以通过回退png库的版本的方法。我的方法就是在configure的参数中不要设置png库的位置,系统会自动搜索一个低版本的png库来使用,并且没有错误。

Linux的编译安装,如果重装,可以直接在相同的位置重新编译安装,那些非安装的文件,会被保留。

多尝试,积累自己的经验。

本文链接:http://www.maixj.net/wz/php7-gd-jpg-png-15582
云上小悟 麦新杰(QQ:1093023102)

-- (*^-^*) --

相关文章

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号苏ICP备14045477号-1

网站二维码
拍拍贷
go to top