国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

配置PHP使之能同時(shí)支持GIF和JPEG

瀏覽:118日期:2024-01-24 14:13:49
問(wèn)題:安裝藍(lán)點(diǎn)Linux 2.0后,進(jìn)行PHP編程,發(fā)現(xiàn)只能處理GIF圖像,不能處理JPEG圖像。后來(lái)知道PHP處理圖像,使用了GD庫(kù),而GD庫(kù)開(kāi)始時(shí)是支持GIF的,但由于GIF使用了有版權(quán)爭(zhēng)議的LZW算法,會(huì)引起法律問(wèn)題,于是從GD-1.6開(kāi)始,GD庫(kù)不再支持GIF,改為支持更好的,無(wú)版權(quán)爭(zhēng)議的PNG。而我現(xiàn)在希望同時(shí)支持GIF,PNG和JPEG。經(jīng)過(guò)嘗試,我成功地做到了這一點(diǎn)。下面介紹具體做法。我的配置為:藍(lán)點(diǎn)Linux 2.0,Kernel-2.2.16,MySQL-3.23.10alpha,Apache-1.3.12,PHP4.0.1pl2,gd-1.8.3,Jpeg6b。我將按照由底向上的順序介紹,即Jpeg->GD->PHP->Apache。 0、 當(dāng)前狀態(tài)查看 安裝藍(lán)點(diǎn)Linux 2.0后,Kernel,MySQL,Apache未做任何改變,看看當(dāng)前狀態(tài)如何。 創(chuàng)建一PHP文件,名為info.php,放于Apahce的文檔目錄下(/etc/httpd/html),其內(nèi)容如下: <? phpinfo(); ?> 文件就只有1行。用瀏覽器打開(kāi)該文件URL(我的hostname為zhangzh): http://zhangzh/info.php 如果Apache/PHP正常運(yùn)行的話,頁(yè)面中將會(huì)列出PHP版本,Apache版本,以及其他各種有用的信息。我關(guān)心的是GD庫(kù)部分,看看它是否支持GIF、JPEG,結(jié)果發(fā)現(xiàn)支持GIF而不支持JPEG。 1、 Jpeg6b的安裝和配置 Jpeg的主要文件有jpeglib.h, libjpeg.a, libjpeg.so等。首先檢查系統(tǒng)中安裝了沒(méi)有,到/usr/include目錄下看有無(wú)jpeglib.h,到/usr/lib目錄下看有無(wú)libjpeg.a和libjpeg.so。我的系統(tǒng)中沒(méi)有,因而要安裝。 獲取Jpeg源碼的地址為: ftp://ftp.uu.net/graphics/jpeg/ 取得的文件為jpegsrc.v6b.tar.gz,放于/usr/src目錄下。 進(jìn)入/usr/src目錄中,開(kāi)始安裝過(guò)程。 進(jìn)入/usr/src: cd /usr/src 解開(kāi)壓縮文件: tar xzvf jpegsrc.v6b.tar.gz 命令完成后多了一個(gè)子目錄jpeg-6b,Jpeg的源碼文件就在其中。 進(jìn)入該子目錄: cd jpeg-6b 該目錄中的install.doc文件詳細(xì)介紹了如何安裝Jpeg,照章行事即可。 配置生成Makefile文件: ./configure 命令完成后該目錄下多了個(gè)Makefile文件。Makefile文件是許多軟件編譯、安裝的配置和過(guò)程控制文件,十分重要,應(yīng)該學(xué)會(huì)看懂它的內(nèi)容。 開(kāi)始編譯: 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的主要文件有g(shù)d.h, libgd.a等。 獲取GD源碼的地址為: http://www.boutell.com/gd/ 取得的文件為gd-1.8.3.tar.gz,放于/usr/src目錄下。 已知道該版本的GD不支持GIF,但想來(lái)象我一樣希望GD同時(shí)支持GIF和JPEG的人不少,于是有人做了個(gè)補(bǔ)丁,把對(duì)GIF的支持加回去了??雌饋?lái)這是個(gè)英國(guó)人吧,他的Email地址為adam@elysium.ltd.uk。 獲取補(bǔ)丁源碼的地址為: http://www.webofsin.com/gd-1.8.3-gif.patch 取得的文件為gd-1.8.3-gif.patch,放于/usr/src目錄下。 進(jìn)入/usr/src: cd /usr/src 解開(kāi)壓縮文件: tar xzvf gd-1.8.3.tar.gz 命令完成后多了一個(gè)子目錄gd-1.8.3,GD的源碼文件就在其中。 給源碼打補(bǔ)?。?patch -p0 命令完成后gd-1.8.3子目錄下多了個(gè)gd_gif.c文件,而文件gd.h和Makefile也被作了相應(yīng)修改。 進(jìn)入該子目錄: cd gd-1.8.3 缺省情況下,GD庫(kù)編譯時(shí)并不加入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的主要文件有l(wèi)ibphp4.a, libphp4.so等。 獲取PHP源碼的地址為: http://php.net 取得的文件為php-4.0.1pl2.tar.gz,放于/usr/src目錄下。 進(jìn)入/usr/src目錄并解壓文件: cd /usr/src tar xzvf php-4.0.1pl2.tar.gz 命令完成后多了一個(gè)子目錄php-4.0.1pl2,PHP的源碼文件就在其中。 進(jìn)入該子目錄: cd php-4.0.1pl2 該目錄中的INSTALL文件詳細(xì)介紹了如何安裝PHP,照章行事即可。 配置生成Makefile文件: ./configure '--with-apxs=/usr/sbin/apxs' '--with-mysql'  '--with-config-file-path=/etc/httpd' '--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' 注意最后一行參數(shù)'--with-jpeg-dir=/usr/local' '--with-gd=/usr/local',指明了Jpeg和GD的目錄為/usr/local,這是根據(jù)步驟1、2中make install的結(jié)果而指定的。 (由于命令太長(zhǎng),建議寫成shell文件再執(zhí)行。文件my-php-conf內(nèi)容如下: #! /bin/sh ./configure '--with-apxs=/usr/sbin/apxs' '--with-mysql'  '--with-config-file-path=/etc/httpd' '--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' 用shell執(zhí)行之: sh my-php-conf 效果是一樣的。) 命令完成后該目錄下多了個(gè)Makefile文件。 編譯并安裝: make make install 命令完成后,libphp4.so被拷到/usr/lib/apache目錄下。 4、 Apache的配置 Apache本身不必重新編譯安裝,但使用了新的PHP,須讓Apache知道,得修改Apache的配置文件并重啟Apache服務(wù)。 修改Apache配置文件/etc/httpd/conf/httpd.conf,使得文件中包含以下幾行: LoadModule php4_module modules/libphp4.so AddModule mod_php4.c AddType application/x-httpd-php .php3 .php 同時(shí)注意把舊的php3的相應(yīng)行注釋掉,否則會(huì)出現(xiàn)沖突而使Apache重啟失敗。 重啟Apache服務(wù): /etc/rc.d/init.d/httpd restart 5、 實(shí)例測(cè)試 再次按步驟0的說(shuō)明檢查當(dāng)前狀態(tài),我已經(jīng)看到,PHP改成了新的版本號(hào),GD庫(kù)也同時(shí)支持GIF和JPEG了。 但我還是想用實(shí)例來(lái)測(cè)試一下,這個(gè)例子的功能是讀取一個(gè)gif文件,生成縮圖,然后保存為另一個(gè)jpg文件。文件create-thumb.php的內(nèi)容如下: <? function CreateThumbnail($srcFile, $dstFile, $dstW, $dstH) { $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,$dstH); ImageCopyResized($ni,$im,0,0,0,0,$dstW,$dstH,$srcW,$srcH); ImageJPEG($ni,$dstFile); } } CreateThumbnail("./test.gif", "./test-tn.jpg", 80, 80); ?> 把該文件放于Apahce的文檔目錄下(/etc/httpd/html),同時(shí)把測(cè)試用的圖像文件test.gif也放于該目錄下,然后用瀏覽器打開(kāi)該php文件(我的hostname為zhangzh): http://zhangzh/create-thumb.php 沒(méi)出錯(cuò)信息。再看Apahce的文檔目錄(/etc/httpd/html),多了一個(gè)縮圖文件test-tn.jpg。 大功告成,班師回朝。
標(biāo)簽: PHP
主站蜘蛛池模板: 日韩欧一级毛片在线播无遮挡 | 91看片淫黄大片欧美看国产片 | 99精品福利 | 欧美一级成人影院免费的 | 亚洲人成在线影院 | 成网站在线观看人免费 | 日本亚洲国产 | 手机国产精品一区二区 | 日韩欧美在线看 | 日韩毛片| 久久影院yy6080 | 高清午夜看片a福利在线观看琪琪 | 国产一区二区三区久久小说 | a级毛片在线视频免费观看 a级免费 | 成年女人永久免费观看片 | 国产网站在线看 | 免费男女乱淫真视频播放 | 91香蕉网| 免费播放欧美毛片 | 特级黄色毛片在放 | 在线视频欧美亚洲 | 国产欧美亚洲三区久在线观看 | 国内精品久久久久久久影视麻豆 | 亚洲一级毛片免观看 | 国产精品hd在线播放 | 久久精品午夜视频 | 男女午夜爱爱久久无遮挡 | 亚洲一区二区三区在线 | 久草视频首页 | 成人欧美网站免费 | 亚洲另类视频在线观看 | 极品美女户外勾搭无套 | 久久久黄色大片 | 亚洲精品在线免费观看视频 | 精品视频一区二区三区四区 | 精品欧美成人高清在线观看2021 | 亚洲视频观看 | 极品色在线精品视频 | 九九九热在线精品免费全部 | 亚洲 欧美 日韩中文字幕一区二区 | 米奇精品一区二区三区在线观看 |