一站式下载学习分享平台 友情链接

网站首页源码插件 正文

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

皮皮娃学习网 2020-07-13 源码插件 24 ℃0 评论

皮皮娃上一次编译安装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的编译安装,如果重装,可以直接在相同的位置重新编译安装,那些非安装的文件,会被保留。

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

本文标题:编译安装PHP7,让GD库支持JPG和PNG
本文链接:https://www.ppwxxw.com/post/331.html
作者授权:除特别说明外,本文由 皮皮娃学习网 原创编译并授权 皮皮娃学习网 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。

Tags:建站教程疑难杂症SEOLinuxwordpressSEO优化

< 皮皮娃学习网 >
如有密码均为:ppwxxw.com
天若有情天亦老、人间正道是沧桑
本站资源软件和源码 文章大部分为网上收集,如侵犯您的权利,请告知管理员,我们会及时删除,感谢理解.

站长邮箱:ppwxxw@ppwxxw.com

本文暂时没有评论,来添加一个吧(●'◡'●)


取消回复欢迎 发表评论:

搜索
网站分类
最新文章
标签