广告
AD
关于   小悟志   栏目   标签   文章   归档   友链

   云上小悟  +  

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

网站建设 / by: 麦新杰 / 发布:2017年5月30日 / 13次阅读 / 暂无评论
标签:PHP   / 最后修改时间: 2017-06-18 22:19:43

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

拍拍贷
featured image

麦新杰上一次编译安装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不同导致的,反正还没搞清楚原因。

-- (*^-^*) --

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

《编译安装PHP7,让GD库支持JPG和PNG》暂无评论

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

云上小悟独立博客网站文章内容,除非特别注明,全部都是原创(非原创请阅读本站版权声明),如需转载,请保留文章链接!原创文章更具个性,有些文字虽略显随意,但不影响个人思想表达。部分文章是我自己的笔记,为自己记录,总结和收藏,同时也分享给您!这是本博建设的出发点,希望您喜欢并得到您的支持!

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有  备案号:苏ICP备14045477号-1  economists.cn的备案号:苏ICP备14045477号-3    联系我们

云上小悟,麦新杰的独立博客