http://www.laruence.com/2009/04/28/719.html
注意在window下我們經常下載dll文件,然後放在擴展目錄中,但是在linux下dll不能使用,對應的是so文件。
在LINUX下使用源碼安裝php
./configure --prefix=。。。。。--enable-php-fpm
這樣會沒有安裝curl openssl mbstring mysqli gd庫等
最好是在安裝php的時候直接./configure --with-XXXX,要支持的擴展都安裝上,因爲本文安裝時並沒有不支持擴展,所以這裏在安裝後php,不支持擴展的情況下的解決辦法。
很多文章都將在php.ini文件中直接將extension=前的;去掉,但是不能實現,我們要在找到php的安裝源碼中ext文件中生成擴展包.so,然後複製到extension的搜索目錄中,並且在php.ini文件中添加extension=XX.so,最後再重啓nginx php-fpm即可。
1 curl
(1)cd php-5.6.8/ext/curl
(2)# phpize
phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊,執行後會生成configure文件。
不能執行就find / -name "phpize" 找到phpize的路徑。然後執行 # /XXX/phpize;
(3)然後執行
# ./configure--with-curl --with-php-config=/home/XX/php/bin/php-config
(4)# make ; make test; make
(5) # cp curl.so XX
XX 是php.ini 文件中extension-dir=“XX” 的路徑‘’
(6)修改php.ini
extension=curl.so
2 openssl 同上
3 mbstring 不同在(3)步,其他一樣
./configure--enable-mbstring--with-php-config=/home/XX/php/bin/php-config
4 mysql mysqli的支持其中第(3)步:./configure--with-php-config=/home/XX/php/bin/php-config--with- mysql=/home/XX/mysql/mysql/
with-mysql=mysql安裝位置mysqli安裝:
其中第(3)步: ./configure--with-mysqli--with-php-config=/home/XX/php/bin/php-config
會出錯:關於mysqli_api.c內找不到mysqlnd的。。。。。
直接修改mysqli_api.c中include的路徑,採用絕對路徑
5 gd 需要支持jpeg freetype png 等在編譯擴展中,我的出現不支持jpeg freetype
這是需要查看是否安裝jpeg freetype 其中jpeg安裝參照6
# ./configure --with-gd --with-jpeg-dir=/home/XX/jpeg --with-freetype-dir=/usr/include/freetype2 --with-php-config=/home/XX/php/bin/php-config
需要指定安裝位置
6 安裝jpeg
這裏安裝的6
解壓後:
# cd jpeg6b
# ./configure --prefix=安裝路徑--enable-shared
--enable-
static
#make && make install
出現錯誤:
/usr/bin/install: 無法創建普通文件"/usr/local/man/man1/cjpeg.1": 沒有那個文件或目錄
make: *** [install] 錯誤 1
解決:
# mkdir -p /usr/local/man/man1 然後在make install即可。