国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah pembangunan bahagian belakang tutorial php 配置PHP使之能同時支持GIF和JPEG_PHP教程

配置PHP使之能同時支持GIF和JPEG_PHP教程

Jul 21, 2016 pm 04:07 PM
gif jpeg linux php belakang dan Pasang sokongan pengaturcaraan mampu kelakuan Konfigurasi soalan

問題:安裝藍點Linux 2.0后,進行PHP編程,發(fā)現(xiàn)只能處理GIF圖像,不能處理JPEG圖像。后來知道PHP處理圖像,使用了GD庫,而GD庫開始時是支持GIF的,但由于GIF使用了有版權(quán)爭議的LZW算法,會引起法律問題,于是從GD-1.6開始,GD庫不再支持GIF,改為支持更好的,無版權(quán)爭議的PNG。而我現(xiàn)在希望同時支持GIF,PNG和JPEG。經(jīng)過嘗試,我成功地做到了這一點。下面介紹具體做法。我的配置為:藍點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、 當前狀態(tài)查看
安裝藍點Linux 2.0后,Kernel,MySQL,Apache未做任何改變,看看當前狀態(tài)如何。
創(chuàng)建一PHP文件,名為info.php,放于Apahce的文檔目錄下(/etc/httpd/html),其內(nèi)容如下:
 phpinfo(); ?>
文件就只有1行。用瀏覽器打開該文件URL(我的hostname為zhangzh):
http://zhangzh/info.php
如果Apache/PHP正常運行的話,頁面中將會列出PHP版本,Apache版本,以及其他各種有用的信息。我關(guān)心的是GD庫部分,看看它是否支持GIF、JPEG,結(jié)果發(fā)現(xiàn)支持GIF而不支持JPEG。

1、 Jpeg6b的安裝和配置
Jpeg的主要文件有jpeglib.h, libjpeg.a, libjpeg.so等。首先檢查系統(tǒng)中安裝了沒有,到/usr/include目錄下看有無jpeglib.h,到/usr/lib目錄下看有無libjpeg.a和libjpeg.so。我的系統(tǒng)中沒有,因而要安裝。
獲取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文件是許多軟件編譯、安裝的配置和過程控制文件,十分重要,應該學會看懂它的內(nè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,但想來象我一樣希望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的主要文件有l(wèi)ibphp4.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'
注意最后一行參數(shù)'--with-jpeg-dir=/usr/local' '--with-gd=/usr/local',指明了Jpeg和GD的目錄為/usr/local,這是根據(jù)步驟1、2中make install的結(jié)果而指定的。
(由于命令太長,建議寫成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
效果是一樣的。)
命令完成后該目錄下多了個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的相應行注釋掉,否則會出現(xiàn)沖突而使Apache重啟失敗。
重啟Apache服務:
/etc/rc.d/init.d/httpd restart

5、 實例測試
再次按步驟0的說明檢查當前狀態(tài),我已經(jīng)看到,PHP改成了新的版本號,GD庫也同時支持GIF和JPEG了。
但我還是想用實例來測試一下,這個例子的功能是讀取一個gif文件,生成縮圖,然后保存為另一個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 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。

大功告成,班師回朝。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/315210.htmlTechArticle問題:安裝藍點Linux 2.0后,進行PHP編程,發(fā)現(xiàn)只能處理GIF圖像,不能處理JPEG圖像。后來知道PHP處理圖像,使用了GD庫,而GD庫開始時是支持...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276
VSCODE SETTINGS.JSON Lokasi VSCODE SETTINGS.JSON Lokasi Aug 01, 2025 am 06:12 AM

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek

Panduan untuk pilihan pemasangan Windows tersuai Panduan untuk pilihan pemasangan Windows tersuai Aug 01, 2025 am 04:48 AM

Pilih "Custom: InstallWindowSonly (Advanced)" forfullControl, asitallowsacleanStallThatRemoveSoldIssuesInseMentPrenance.2.DuringSetup, ManagePartitionSbyDeletingOldones (afterbackingupdata), creatingNewPartitions, formatting (formatts)

Cara menjadualkan tugas di Linux dengan Cron dan Anacron Cara menjadualkan tugas di Linux dengan Cron dan Anacron Aug 01, 2025 am 06:11 AM

cronisusedforpreciseschedulingonalways-onsystems, manakalaCronensureSperiodictasksrunonsystemsthataren'tcontinuouslypowered, suchaslaptops; 1.usecronforexacttiming (cth

Python untuk Etl Kejuruteraan Data ETL Python untuk Etl Kejuruteraan Data ETL Aug 02, 2025 am 08:48 AM

Python adalah alat yang cekap untuk melaksanakan proses ETL. 1. Pengekstrakan data: Data boleh diekstrak dari pangkalan data, API, fail dan sumber lain melalui panda, sqlalchemy, permintaan dan perpustakaan lain; 2. Penukaran Data: Gunakan panda untuk pembersihan, penukaran jenis, persatuan, pengagregatan dan operasi lain untuk memastikan kualiti data dan mengoptimumkan prestasi; 3. Pemuatan Data: Gunakan kaedah Pandas 'TO_SQL atau platform awan SDK untuk menulis data ke sistem sasaran, perhatikan kaedah menulis dan pemprosesan batch; 4. Cadangan Alat: Airflow, Dagster, Prefect digunakan untuk penjadualan dan pengurusan proses, menggabungkan penggera log dan persekitaran maya untuk meningkatkan kestabilan dan mengekalkan.

Apakah kebaikan dan keburukan utama Linux vs Windows? Apakah kebaikan dan keburukan utama Linux vs Windows? Aug 03, 2025 am 02:56 AM

Linux sesuai untuk perkakasan lama, mempunyai keselamatan yang tinggi dan boleh disesuaikan, tetapi mempunyai keserasian perisian yang lemah; Perisian Windows kaya dan mudah digunakan, tetapi mempunyai penggunaan sumber yang tinggi. 1. Dari segi prestasi, Linux ringan dan cekap, sesuai untuk peranti lama; Windows mempunyai keperluan perkakasan yang tinggi. 2. Dari segi perisian, Windows mempunyai keserasian yang lebih luas, terutama alat dan permainan profesional; Linux perlu menggunakan alat untuk menjalankan beberapa perisian. 3. Dari segi keselamatan, pengurusan kebenaran Linux lebih ketat dan kemas kini adalah mudah; Walaupun Windows dilindungi, ia masih terdedah kepada serangan. 4. Dari segi kesukaran penggunaan, lengkung pembelajaran Linux adalah curam; Operasi Windows adalah intuitif. Pilih mengikut keperluan: Pilih Linux dengan prestasi dan keselamatan, dan pilih Windows dengan keserasian dan kemudahan penggunaan.

Bagaimana cara memasang perisian di Linux menggunakan terminal? Bagaimana cara memasang perisian di Linux menggunakan terminal? Aug 02, 2025 pm 12:58 PM

Terdapat tiga cara utama untuk memasang perisian di Linux: 1. Gunakan pengurus pakej, seperti apt, dnf atau pacman, dan kemudian laksanakan perintah pemasangan selepas mengemas kini sumber, seperti sudoaptinstallcurl; 2. Untuk fail .deb atau .rpm, gunakan arahan dpkg atau rpm untuk memasang, dan membaiki kebergantungan apabila diperlukan; 3. Gunakan Snap atau FlatPak untuk memasang aplikasi di seluruh platform, seperti nama perisian sudosnapinstall, yang sesuai untuk pengguna yang mengejar kemas kini versi. Adalah disyorkan untuk menggunakan pengurus pakej sistem sendiri untuk keserasian dan prestasi yang lebih baik.

Menggunakan PHP untuk mengikis data dan automasi web Menggunakan PHP untuk mengikis data dan automasi web Aug 01, 2025 am 07:45 AM

UseGuzzleforrobustHTTPrequestswithheadersandtimeouts.2.ParseHTMLefficientlywithSymfonyDomCrawlerusingCSSselectors.3.HandleJavaScript-heavysitesbyintegratingPuppeteerviaPHPexec()torenderpages.4.Respectrobots.txt,adddelays,rotateuseragents,anduseproxie

Panduan Terbaik untuk Permainan Berprestasi Tinggi di Linux Panduan Terbaik untuk Permainan Berprestasi Tinggi di Linux Aug 03, 2025 am 05:51 AM

Pilihpop! _Os, Ubuntu, Nobaralinux, OrarchlinuxforoptimalgamingperformanceWithMinimaloverhead.2.InstallOfficialNvidiaprietary DRIVERSFORNVIDIAGPUS, Pastikan-ke-Datemesaandkernelversionsforamdandintelgpus.3.enableTheperFormanceCpugovernor, Usealow-Latenc

See all articles