有台新的php 环境 用户反应没有 gd的 jpeg 支持。查看了一下确实没有。应该是源码编译安装php 默认的GD库没有 jpeg支持。
为什么没有呢? 。。。不知道~
下面我们来 添加 jpeg 格式文件的支持
wget http://www.ijg.org/files/jpegsrc.v8b.tar.gz
tar -zxvf jpegsrc.v8b.tar.gz
cd jpeg-8b
./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
make && make install
下面进入到 php 源码目录下 的 ext 下的 gd目录
进入gd 目录后执行 注意下面的 /usr/local/php5/ 是你服务器 php的安装路径。我的是 这个路径就写成这样了
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php5/bin/php-config --with-jpeg-dir=/usr/local/jpeg/
make && make install
执行完这些 系统就会提示你 gd.so 生成目录
在php.ini下 添加 gd.so 后 全路径
extention = /usr/local/php5/lib/php/extension/gd.so
重启php 重启 应用服务器后就OK了
按正常 这就应该解决了~ 但其实没有。至少我这没有。重启apache ,一样没有 jpeg支持。
使用 php -m 查看 moudel 提示已经加载GD 不能重复加载。
换句话说 第一次已经包含了gd编译 所以不能引入 外部的 gd.so
重新编译 php吧。。。
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache/bin/apxs --enable-fpm --enable-pcntl --enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-shmop --enable-zip --enable-ftp --enable-soap --enable-xml --enable-mbstring --disable-rpath --disable-debug --disable-fileinfo --with-mysql=/usr/local/mysql --with-mysqli --with-pdo-mysql --with-pcre-regex --with-iconv --with-zlib --with-openssl --with-mhash --with-xmlrpc --with-curl --with-imap-ssl --with-jpeg-dir=/usr/local/jpeg
make clean
make
make install
注意 我这里没有 --with-gd。因为我还是想通过extension 加载 gd.so。
带上 --with-gd 和 --with-jpeg-dir=/usr/local/jpeg 是不是直接解决呢?我没测试。
安装完成后 ,发现php已经不加载 gd了。
按照上述方法 重新 编译 GD.so (注意 一定要重新编译,之前编译的 gd.so 也是不能加载的)
重启之后 查看 phpinfo 已经有了 gd下面的 jpeg 支持了。