关于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
原文:http://www.cnblogs.com/bootoo/p/7735997.html