Centos7下安裝php, 或php的gd庫(kù)支持,都是很簡(jiǎn)單的。
一切通過yum搞定。
1
|
yum install php-gd |
以上命令就搞定php-gd的支持,快快看看phpinfo是否支持了?
可是,如果需要采用不同版本的php時(shí),那就是相當(dāng)?shù)穆闊?jīng)過摸索,筆者找到了一個(gè)較為簡(jiǎn)單的方式。
由于需要與系統(tǒng)原生版本共存多個(gè)php版本,那么你要求的版本必須采用源碼編譯。(如果有其他辦法,請(qǐng)記得回復(fù)告知一下我)
那么,編譯php-gd的支持,網(wǎng)上大多都是通過編譯freetype, libpng, libjpeg…好復(fù)雜,筆者通過一一嘗試,發(fā)現(xiàn)還是不成功!!!!后來發(fā)現(xiàn),自己編譯的gd庫(kù)沒有包含jpeg和libpng的支持。
(通過查看自己編譯的動(dòng)態(tài)庫(kù)文件的依賴關(guān)系ldd libgd.so.2)
注意:如果通過自己編譯源碼的方式,你成功的在源碼版本的php中看到了gd支持png,那么恭喜你,你太幸運(yùn)了。
下面來說說我的方法:
盡可能的使用系統(tǒng)的庫(kù),或者yum源可以安裝的庫(kù),比如gd, libpng, libjpeg, libfreetype…一切,centos的源都已經(jīng)準(zhǔn)備好,我們只是希望一個(gè)不同版本的php而已。由于我們需要源碼編譯php,所以需要安裝對(duì)應(yīng)的源碼版本,及帶devel標(biāo)識(shí)的版本。
1
|
yum install libpng libpng-devel libjpeg-turbo libjpeg-turbo-devel freetype freetype-devel gd |
在php源碼目錄下:如果出現(xiàn)未定義gdXXX函數(shù)錯(cuò)誤,需要clean一下編譯的結(jié)果。
1
|
make clean |
再重新make一下:
1
|
‘./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)目錄下的版本(省時(shí)省力哦)。
如此安裝后,gd庫(kù)就按照ok了,新生產(chǎn)的libphp5.so文件已經(jīng)安裝到了指定的apache的moduls目錄了。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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 |
為什么我們可以省力呢?應(yīng)為centos安裝的gd庫(kù)已經(jīng)把jpeg, png等庫(kù)都已經(jīng)連接好了。通過ldd liggd.so.2 就可以證明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[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庫(kù)的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/yin138/article/details/51100830