配置PHP使之能同时支持GIF和JPEG

主题材料:安装蓝点Linux
2.0后,举办PHP编制程序,开采只可以管理GIF图像,无法管理JPEG图像。后来知晓PHP管理图像,使用了GD库,而GD库最初时是永葆GIF的,但由于GIF使用了有版权争论的LZW算法,会挑起法律难题,于是从GD-1.6最先,GD库不再支持GIF,改为永葆更加好的,无版权争论的PNG。而自己明日期待同期帮忙GIF,PNG和JPEG。经过尝试,小编成功地完成了那或多或少。下边介绍具体做法。我的安排为:蓝点Linux
2.0,Kernel-2.2.16,MySQL-3.23.10阿尔法,Apache-1.3.12,PHP4.0.1pl2,gd-1.8.3,Jpeg6b。小编将根据由底向上的顺序介绍,即Jpeg-GD-PHP-Apache。
0、 当前地方查看 安装蓝点Linux
2.0后,Kernel,MySQL,Apache未做任何变动,看看当前意况怎么样。
创制一PHP文书,名叫info.php,放于Apahce的文书档案目录下,其内容如下: ?
phpinfo(卡塔尔(قطر‎; ? 文件就只有1行。用浏览器展开该文件U奥迪Q7L:
如若Apache/PHP平常运作以来,页面元帅会列出PHP版本,Apache版本,以至其余各样行之有效的新闻。笔者体贴入妙的是GD库部分,看看它是否扶植GIF、JPEG,结果发现协理GIF而不协理JPEG。
1、 Jpeg6b的设置和布署 Jpeg的重要文件有jpeglib.h, libjpeg.a,
libjpeg.so等。首先检查体系中设置了未曾,到/usr/include目录下看有无jpeglib.h,到/usr/lib目录下看有无libjpeg.a和libjpeg.so。笔者的系统中并未,因此要设置。
获取Jpeg源码之处为: ftp://ftp.uu.net/graphics/jpeg/
获得的文书为jpegsrc.v6b.tar.gz,放于/usr/src目录下。
进入/usr/src目录中,初步设置进程。 踏向/usr/src: cd /usr/src
解开压缩文件: tar xzvf jpegsrc.v6b.tar.gz
命令达成后多了三个子目录jpeg-6b,Jpeg的源码文件就在里面。 步向该子目录:
cd jpeg-6b
该目录中的install.doc文件详细介绍了怎么设置Jpeg,照章行事就可以。
配置生成Makefile文件: ./configure
命令完结后该目录下多了个Makefile文件。Makefile文件是比很多软件编写翻译、安装的布署和经过调控文件,十三分首要,应该学会看懂它的剧情。
最早编写翻译: make
命令完结后该目录下多了无数文书,此中最首要的是libjpeg.a和libjpeg.so。
安装: make install
命令完毕后,jpeglib.h被拷到/usr/local/include目录下,libjpeg.a和libjpeg.so被拷到/usr/local/lib目录下。
2、 GD-1.8.3的安装和安顿 GD的基本点文件有gd.h, libgd.a等。
获取GD源码的地点为: 获得的文书为gd-1.8.3.tar.gz,放于/usr/src目录下。
已驾驭该版本的GD不援救GIF,但想来象笔者同一期望GD同期扶持GIF和JPEG的人不菲,于是有人做了个补丁,把对GIF的支撑加回去了。看起来那是个比利时人啊,他的Email地址为adam@elysium.ltd.uk。
获取补丁源码的地方为:
获得的文本为gd-1.8.3-gif.patch,放于/usr/src目录下。 步向/usr/src: cd
/usr/src 解开压缩文件: tar xzvf gd-1.8.3.tar.gz
命令实现后多了叁个子目录gd-1.8.3,GD的源码文件就在其间。 给源码打补丁:
patch -p0
命令实现后gd-1.8.3子目录下多了个gd_gif.c文件,而文件gd.h和Makefile也被作了相应改正。
步向该子目录: cd gd-1.8.3
缺省气象下,GD库编写翻译时并不步入JPEG扶持,得改良Makefile文件。
修正Makefile文件,使得: CFLAGS=-O -DHAVE_XPM -DHAVE_JPEG
-DHAVE_LIBTTF LIBS=-lm -lgd -lpng -lz -ljpeg -lttf -lXpm -lX11
从今以后,编写翻译并安装: make make install
命令实现后,gd.h被拷到/usr/local/include目录下,libgd.a被拷到/usr/local/lib目录下。
3、 PHP-4.0.1pl2的安装和配置 PHP的主要文件有libphp4.a, libphp4.so等。
获取PHP源码之处为:
获得的文书为php-4.0.1pl2.tar.gz,放于/usr/src目录下。
步入/usr/src目录并解压文件: cd /usr/src tar xzvf php-4.0.1pl2.tar.gz
下令完结后多了叁个子目录php-4.0.1pl2,PHP的源码文件就在此中。
步向该子目录: cd php-4.0.1pl2
该目录中的INSTALL文件详细介绍了什么设置PHP,照章行事就可以。
配置生成Makefile文件: ./configure ‘–with-apxs=/usr/sbin/apxs’
‘–with-mysql’ ‘–with-config-file-path=/etc/’ ‘–enable-safe-mode’
‘–with-system-regex’ ‘–disable-debug’ ‘–with-zlib’
‘–enable-magic-quotes’ ‘–enable-track-vars’
‘–with-jpeg-dir=/usr/local’ ‘–with-gd=/usr/local’
注意最终一行参数’–with-jpeg-dir=/usr/local’
‘–with-gd=/usr/local’,指明了Jpeg和GD的目录为/usr/local,那是基于步骤1、第22中学make
install的结果而钦点的。 命令完结后该目录下多了个Makefile文件。
编写翻译并安装: make make install
命令达成后,libphp4.so被拷到/usr/lib/apache目录下。 4、 Apache的配置
Apache自己不必再一次编译安装,但接纳了新的PHP,须让Apache知道,得校订Apache的铺排文件同仁一视启Apache服务。
订正Apache配置文件/etc/,使得文件中蕴涵以下几行: LoadModule
php4_module modules/libphp4.so AddModule mod_php4.c AddType
application/x- .php3 .php
同有时候注意把旧的php3的应和行注释掉,不然会晤世冲突而使Apache重启失利。
重启Apache服务: /etc/rc.d/init.d/ restart 5、 实例测量试验再一次按步骤0的验证检查当前气象,作者早就见到,PHP改成了新的本子号,GD库也还要扶持GIF和JPEG了。
但我要么想用实例来测量检验一下,那么些事例的功用是读取三个gif文件,生成缩图,然后保留为另四个jpg文件。文件create-thumb.php的剧情如下:
? function CreateThumbnail($srcFile, $dstFile, $dstW, $dstHState of Qatar { $data =
GetImageSize($srcFile,&$info卡塔尔国; switch ($data[2]) { case 1: $im =
@ImageCreateFromGIF($srcFile); break; case 2: $im =
@ImageCreateFromJPEG($srcFile); break; case 3: $im =
@ImageCreateFromPNG($srcFile); break; } $srcW=ImageSX($im);
$srcH=ImageSY($im); if ($srcW = $dstW && $srcH = $dstH)
ImageJPEG($im,$dstFile); else { if(($srcW / $srcH) ($dstW / $dstH))
$dstH = $dstW * $srcH / $srcW; else $dstW = $dstH * $srcW / $srcH;
$ni=ImageCreate($dstW,$dstHState of Qatar;
ImageCopyResized($ni,$im,0,0,0,0,$dstW,$dstH,$srcW,$srcHState of Qatar;
ImageJPEG($ni,$dstFileState of Qatar; } } CreateThumbnail(./test.gif, ./test-tn.jpg,
80, 80卡塔尔; ?
把该公文放于Apahce的文书档案目录下,同一时候把测量检验用的图像文件test.gif也放于该目录下,然后用浏览器张开该php文件:
没出错音信。再看Apahce的文档目录,多了七个缩图文件test-tn.jpg。
马到功成,凯旋而归。

 使php支持 gif , jpeg , ttf ,wbmp
  为了设置方便,作者本人写了一分GD安装的进度,今后刊载出来.希望相爱的大家多提意见,谢谢!
原本GD不协助WBMP,今后扩充GD支持WBMP.
问题:
  安装RedHat 7.2
后,实行PHP编制程序,发掘只可以管理GIF图像,不能够管理JPEG图像。
  后来领会PHP管理图像,使用了GD库,而GD库伊始时是协助GIF的,但鉴于GIF使用了有版权纠纷的LZW算法,会唤起法律难题,于是从GD-
1.6始发,GD库不再扶助GIF,改为永葆越来越好的,无版权纠纷的PNG。而自己前日期望同期匡助GIF,PNG和JPEG。由底向上的次第介绍,即
Jpeg->ttf->zlib->png->GD->PHP->Apache。
1.Jpeg6b的装置和布局
  Jpeg的重大文件有jpeglib.h, libjpeg.a,
libjpeg.so等。首先检查种类中安装了从未,到/usr/include目录下看有无jpeglib.h,到/usr/lib目录下看有无
libjpeg.a和libjpeg.so。作者的系统中并未有,由此要设置。
  获取Jpeg源码的地址为:
  ftp://ftp.uu.net/graphics/jpeg/
  获得的文书为jpegsrc.v6b.tar.gz,放于/usr/src目录下。
  步入/usr/src目录中,初阶设置过程。进入/usr/src:
  cd /usr/src
  解开压缩文件:
  tar xzvf jpegsrc.v6b.tar.gz
  命令完结后多了一个子目录jpeg-6b,Jpeg的源码文件就在里头。步入该子目录:
  cd jpeg-6b
  该目录中的install.doc文件详细介绍了什么设置Jpeg,照章行事就能够。配置生成Makefile文件:
  ./configure
  命令完毕后该目录下多了个Makefile文件。Makefile文件是众多软件编译、安装的配备和经过调整文件,十二分重要,应该学会看懂它的剧情。以前编写翻译:
  make
  命令达成后该目录下多了累累文件,个中入眼的是libjpeg.a和libjpeg.so。安装:
  make install
  命令实现后,jpeglib.h被拷到/usr/include目录下,libjpeg.a和libjpeg.so被拷到/usr/local/lib目录下

  • 1.8.3-gif.patch
    得到的文件为gd-1.8.3-gif.patch,放于/usr/src目录下。步入/usr/src:
      cd /usr/src
      解开压缩文件:
      tar xzvf gd-1.8.3.tar.gz
      命令达成后多了叁个子目录gd-1.8.3,GD的源码文件就在中间。给源码打补丁:
      patch -p0
      命令完结后gd-1.8.3子目录下多了个gd_gif.c文件,而文件gd.h和Makefile也被作了对应改良。步向该子目录:
      cd gd-1.8.3
      缺省气象下,GD库编写翻译时并不投入JPEG帮忙,得修正Makefile文件。校正Makefile文件,使得:
      CFLAGS=-O -DHAVE_XPM -DHAVE_JPEG -DHAVE_LIBTTF
      LIBS=-lm -lgd -lpng -lz -ljpeg -lttf -lXpm -lX11
      自此,编写翻译并设置:
      make
      make install
      命令完毕后,gd.h被拷到/usr/local/include目录下,libgd.a被拷到/usr/local/lib目录下。
      php apache 以SO方式安装:
    6、 php-4.0.6的设置和布署
      PHP的重要文件有libphp4.a,
    libphp4.so等。获取PHP源码之处为:
      拿到的公文为php-4.0.6.tar.gz,放于/usr/src目录下。
      步向/usr/src目录并解压文件:
      cd /usr/src
      tar xzvf php-4.0.6.tar.gz
      命令达成后多了一个子目录php-4.0.6,PHP的源码文件就在中间。步入该子目录:
      cd php-4.0.6
      php
      ./configure
        –with-apache=/usr/local/apache_1.3.26
        –enable-track-vars
        –enable-debug
        –enable-url-includes
        –enable-sockets
        –with-gd=/usr/local
        –enable-gd-native-ttf
        –with-ttf=/usr/local
        –with-jpeg-dir=/usr/local
        –with-zlib-dir=/usr/local
        –with-png-dir=/usr/local
        
      编译并安装:
      make
      make install
      命令完毕后,libphp4.so被拷到/usr/lib/apache目录下。
    7、apache_1.3.12的设置和安顿
      ./configure
        –prefix=/usr/local/apache
        –activate-module=src/modules/php4/libphp4.a
        –enable-module=so
        –enable-module=negotiation
        –enable-module=status
        –enable-module=include
        –enable-module=autoindex
        –enable-module=cgi
        –enable-module=asis
        –enable-module=imap
        –enable-module=actions
        –enable-module=userdir
        –enable-module=alias
        –enable-module=setenvif
      make
      make
    install图片 1
  1. ttf 的设置和安插
      
       freetype-1.3.1.tar.gz
       tar -xzvf freetype-1.3.1.tar.gz
      ./configure
      命令实现后该目录下多了个Makefile文件。Makefile文件是过多软件编写翻译、安装的配置和进程序调控制文件,十三分重要,应该学会看懂它的剧情。起先编写翻译:
      make
      make install
      编写翻译gd 的时候有error don’t found the freetype.h 所以
      cp /usr/local/include/freetype/* /usr/local/include/
    3, zlib 安装:
      Becaust the note, you must install the zlib first!
      Before installing libpng, you must first install zlib. zlib
      can usually be found wherever you got libpng. zlib can be
      placed in another directory, at the same level as libpng.
      Note that your system might already have a preinstalled
      zlib, but you will still need to have access to the
      zlib.h and zconf.h include files that correspond to the
      version of zlib that’s installed.
      
      ftp://ftp.uu.net/graphics/png/src/zlib-1.1.3.tar.gz
      ./configure
      make
      make install
  2. libpng 安装:
      Read INSTALL
      
      libpng-1.2.0.tar.gz
      UNIX example: cp scripts/makefile.std makefile
      make
      make install
    5.GD-1.8.3的设置和计划
      GD的第一文件有gd.h,
    libgd.a等。获取GD源码的地点为:
      得到的文书为gd-1.8.3.tar.gz,放于/usr/src目录下。已掌握该版本的GD不辅助GIF,但想来象小编同样希望GD同不经常间扶持GIF和
    JPEG的人居多,于是有人做了个补丁,把对GIF的支持加回去了。看起来那是个塞尔维亚人呢,他的Email地址为adam@elysium.ltd.uk。获取补丁源码的地址为

发表评论

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