电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:126日期:2024-01-24 14:13:49
問題:安裝藍點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.10alpha,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的文檔目錄下(/etc/httpd/html),其內容如下: <? phpinfo(); ?> 文件就只有1行。用瀏覽器打開該文件URL(我的hostname為zhangzh): http://zhangzh/info.php 如果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源碼的地址為: http://www.boutell.com/gd/ 取得的文件為gd-1.8.3.tar.gz,放于/usr/src目錄下。 已知道該版本的GD不支持GIF,但想來象我一樣希望GD同時支持GIF和JPEG的人不少,于是有人做了個補丁,把對GIF的支持加回去了。看起來這是個英國人吧,他的Email地址為adam@elysium.ltd.uk。 獲取補丁源碼的地址為: http://www.webofsin.com/gd-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目錄下。 3、 PHP-4.0.1pl2的安裝和配置 PHP的主要文件有libphp4.a, libphp4.so等。 獲取PHP源碼的地址為: http://php.net 取得的文件為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/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' 注意最后一行參數'--with-jpeg-dir=/usr/local' '--with-gd=/usr/local',指明了Jpeg和GD的目錄為/usr/local,這是根據步驟1、2中make install的結果而指定的。 (由于命令太長,建議寫成shell文件再執行。文件my-php-conf內容如下: #! /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執行之: sh my-php-conf 效果是一樣的。) 命令完成后該目錄下多了個Makefile文件。 編譯并安裝: make make install 命令完成后,libphp4.so被拷到/usr/lib/apache目錄下。 4、 Apache的配置 Apache本身不必重新編譯安裝,但使用了新的PHP,須讓Apache知道,得修改Apache的配置文件并重啟Apache服務。 修改Apache配置文件/etc/httpd/conf/httpd.conf,使得文件中包含以下幾行: LoadModule php4_module modules/libphp4.so AddModule mod_php4.c AddType application/x-httpd-php .php3 .php 同時注意把舊的php3的相應行注釋掉,否則會出現沖突而使Apache重啟失敗。 重啟Apache服務: /etc/rc.d/init.d/httpd restart 5、 實例測試 再次按步驟0的說明檢查當前狀態,我已經看到,PHP改成了新的版本號,GD庫也同時支持GIF和JPEG了。 但我還是想用實例來測試一下,這個例子的功能是讀取一個gif文件,生成縮圖,然后保存為另一個jpg文件。文件create-thumb.php的內容如下: <? 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),同時把測試用的圖像文件test.gif也放于該目錄下,然后用瀏覽器打開該php文件(我的hostname為zhangzh): http://zhangzh/create-thumb.php 沒出錯信息。再看Apahce的文檔目錄(/etc/httpd/html),多了一個縮圖文件test-tn.jpg。 大功告成,班師回朝。
標簽: PHP
主站蜘蛛池模板: 阿里巴巴诚信通温州、台州、宁波、嘉兴授权渠道商-浙江联欣科技提供阿里会员办理 | 流变仪-热分析联用仪-热膨胀仪厂家-耐驰科学仪器商贸 | 铸钢件厂家-铸钢齿轮-减速机厂家-淄博凯振机械有限公司 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | 威客电竞(vk·game)·电子竞技赛事官网 | 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 最新范文网_实用的精品范文美文网| 钛板_钛管_钛棒_钛盘管-无锡市盛钛科技有限公司| 翰香原枣子坊加盟费多少钱-正宗枣核糕配方培训利润高飘香 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 影合社-影视人的内容合作平台 | 旋转/数显粘度计-运动粘度测定仪-上海平轩科学仪器 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 隆众资讯-首页_大宗商品资讯_价格走势_市场行情 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 浇钢砖,流钢砖_厂家价低-淄博恒森耐火材料有限公司 | 河南凯邦机械制造有限公司 | 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家| 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 无痕胶_可移胶_无痕双面胶带_可移无痕胶厂家-东莞凯峰 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 净气型药品柜-试剂柜-无管道净气型通风柜-苏州毕恩思 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 苏州防水公司_厂房屋面外墙防水_地下室卫生间防水堵漏-苏州伊诺尔防水工程有限公司 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 仿真植物|仿真树|仿真花|假树|植物墙 - 广州天昆仿真植物有限公司 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 振动传感器,检波器-威海广达勘探仪器有限公司 | 卫生型双针压力表-高温防腐差压表-安徽康泰电气有限公司 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 |