Centos7下PHP安裝gd庫的實例講解
Centos7下安裝php, 或php的gd庫支持,都是很簡單的。
一切通過yum搞定。
yum install php-gd
以上命令就搞定php-gd的支持,快快看看phpinfo是否支持了?
可是,如果需要采用不同版本的php時,那就是相當?shù)穆闊?,?jīng)過摸索,筆者找到了一個較為簡單的方式。
由于需要與系統(tǒng)原生版本共存多個php版本,那么你要求的版本必須采用源碼編譯。(如果有其他辦法,請記得回復告知一下我)
那么,編譯php-gd的支持,網(wǎng)上大多都是通過編譯freetype, libpng, libjpeg…好復雜,筆者通過一一嘗試,發(fā)現(xiàn)還是不成功?。。。『髞戆l(fā)現(xiàn),自己編譯的gd庫沒有包含jpeg和libpng的支持。
(通過查看自己編譯的動態(tài)庫文件的依賴關(guān)系ldd libgd.so.2)
注意:如果通過自己編譯源碼的方式,你成功的在源碼版本的php中看到了gd支持png,那么恭喜你,你太幸運了。
下面來說說我的方法:
盡可能的使用系統(tǒng)的庫,或者yum源可以安裝的庫,比如gd, libpng, libjpeg, libfreetype…一切,centos的源都已經(jīng)準備好,我們只是希望一個不同版本的php而已。由于我們需要源碼編譯php,所以需要安裝對應的源碼版本,及帶devel標識的版本。
yum install libpng libpng-devel libjpeg-turbo libjpeg-turbo-devel freetype freetype-devel gd
在php源碼目錄下:如果出現(xiàn)未定義gdXXX函數(shù)錯誤,需要clean一下編譯的結(jié)果。
make clean
再重新make一下:
‘./configure' ‘–with-mysql' ‘–with-apxs2=/usr/local/apache2/bin/apxs' ‘–with-curl' ‘–with-gd' ‘–with-jpeg-dir' ‘–with-png-dir' ‘–with-freetype-dir'
注意:這里我們不需要指定具體的gd, jpeg, png, freetype目錄的位置,直接采用系統(tǒng)目錄下的版本(省時省力哦)。
如此安裝后,gd庫就按照ok了,新生產(chǎn)的libphp5.so文件已經(jīng)安裝到了指定的apache的moduls目錄了。
GD Support enabled GD Version bundled (2.1.0 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.4.11 GIF Read Support enabled GIF Create Support enabled JPEG Support enabled libJPEG Version 6b PNG Support enabled libPNG Version 1.5.13 WBMP Support enabled XBM Support enabled
為什么我們可以省力呢?應為centos安裝的gd庫已經(jīng)把jpeg, png等庫都已經(jīng)連接好了。通過ldd liggd.so.2 就可以證明:
[root@iZ25mdbcou0Z ~]# ldd /usr/lib64/libgd.so.2 linux-vdso.so.1 => (0x00007fff591fe000) libXpm.so.4 => /lib64/libXpm.so.4 (0x00007f91ed0c8000) libX11.so.6 => /lib64/libX11.so.6 (0x00007f91ecd8a000) libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007f91ecb34000) libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f91ec8f8000) libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f91ec652000) libpng15.so.15 => /lib64/libpng15.so.15 (0x00007f91ec426000) libz.so.1 => /lib64/libz.so.1 (0x00007f91ec210000) libm.so.6 => /lib64/libm.so.6 (0x00007f91ebf0e000) libc.so.6 => /lib64/libc.so.6 (0x00007f91ebb4c000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f91eb92b000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f91eb727000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f91eb4fc000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f91eb2e0000) /lib64/ld-linux-x86-64.so.2 (0x00007f91ed52b000) libXau.so.6 => /lib64/libXau.so.6 (0x00007f91eb0dc000)
以上這篇Centos7下PHP安裝gd庫的實例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
在CentOS中部署多節(jié)點Citus集群的詳細步驟
這篇文章主要給大家介紹了關(guān)于在CentOS中部署多節(jié)點Citus集群的詳細步驟,文中將實現(xiàn)的步驟一步步介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-02-02Linux宿主機下/容器下如何修改進程打開的文件句柄數(shù)(open files)
系統(tǒng)級的max-file和進程級的ulimit-n分別控制文件句柄的最大數(shù)量,系統(tǒng)級限制整個系統(tǒng),而ulimit-n只限制單個進程,當進程打開的文件句柄數(shù)超限時,會報“Too many files open”錯誤,可以通過特定命令查看和修改這些值2024-10-10Linux下設置防火墻白名單(RHEL 6和CentOS 7)的步驟
下面小編就為大家?guī)硪黄狶inux下設置防火墻白名單(RHEL 6和CentOS 7)的步驟。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11Centos 6.8編譯安裝LNMP環(huán)境(Nginx+MySQL+PHP)教程
這篇文章主要介紹了關(guān)于CentOS 6.8中編譯安裝LNMP環(huán)境的相關(guān)資料,LNMP即Linux,Nginx,MySQL,PHP,文中通過一步步的步驟介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03