PHP imagepng函数 问题

关于PHP用不了imagepng函数,导致Nginx 502 的问题

一些错误的理解:
1. libpng版本低,这不对,和版本没有关系

首先要自己检查一下,phpinfo()里是否有GD库支持,如果有就看phpinfo()里 --with-png-dir=/usr/local/libpng.1.6.19,然后看看php的依赖库,用这个:

ldd /usr/local/php/bin/php | grep libpng

我的看到是这样:

libpng12.so.0 => /usr/lib/x86_64-linux-gnu/libpng12.so.0 (0x00007fa6dbbe2000)
libpng12.so.0,其实就是说用的libpng的版本是1.2.x的

很明显libpng.1.6.19和libpng.1.2.x是对不上的,问题就在这里,解决的办法是:
1. 把/usr/lib/x86_64-linux-gnu/libpng12.so.0里的libpng12版本升级到libpng16,用apt-get install -y libpng16-dev,再重新编译PHP。
2. 把原来的/usr/local/libpng.1.6.19删了,重新编译安装libpng,要用1.2.x的版本,这里就不赘述libpng的安装了,将路径写到--with-png-dir=里就可以了,再重新编译PHP。

参考资料:

https://www.huangdc.com/533

原文地址:https://www.cnblogs.com/bootoo/p/7735997.html