最近由於工作的原因需要自己搭建一台開發環境,在部署代碼的時候發現有許多php擴充沒有安裝,我就根據錯誤資訊一步一步的安裝了一些擴充
php可以在編譯php的時候安裝相應擴充,也可以在以後的時候在編譯進去,在實際應用中大部分的擴充都是後續添加的,不然一次編譯帶著那麼多的--with-也不好處理,後續添加編譯擴充的時候php為我們提供了phpize工具
php的大部分擴充源碼都放在php源碼下ext下的相應目錄下面 例如:php-5.3.8/ext/curl下面存放的時候安裝curl擴充時所需要的源檔案
一、pdo擴充
POD擴充是在PHP5中加入,該擴充提供PHP內建類 PDO來對資料庫進行訪問,不同資料庫使用相同的方法名,解決資料庫連接不統一的問題。
PDO的目標
提供一種輕型、清晰、方便的 API
統一各種不同 RDBMS 庫的共有特性,但不排除更進階的特性。
通過 PHP 指令碼提供可選的較大程度的抽象/相容性。
安裝pdo擴充相對比較簡單
cd php-5.3.8/ext/pdo_mysql
/usr/loca/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
編譯完成之後會產生一個.so檔案,開啟php.ini檔案添加擴充重啟服務即可 extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" 這個路徑已最終編譯產生的路徑為準
extension=curl.so
二、memcache擴充
在安裝該擴充的時候遇到了個問題,就是memcache和memcached
1.目前大多數php環境裡使用的都是不帶d的memcache版本,這個版本出的比較早,是一個原生版本,完全在php架構內開發的。
與之對應的帶d的memcached是建立在libmemcached的基礎上,所以相對來說,memcached版本的功能更全一些。
memcache:http://cn2.php.net/manual/en/book.memcache.php
memcached:http://cn2.php.net/manual/en/book.memcached.php
2.Memcache是原生實現的,支援OO和非OO兩套介面並存。而memcached是使用libmemcached,只支援OO介面。
3.memcached還有個非常稱讚的地方,就是flag不是在操作的時候設定了,而是有了一個統一的setOption()。Memcached實現了更多的memcached協議。
4.memcached支援Binary Protocol,而memcache不支援。這意味著memcached會有更高的效能。不過memcached目前還不支援長串連。
安裝memcache比較簡單
安裝memcache服務
1). 下載libevent & memcached 源碼包
libevent-1.3.tar.gz
memcached-1.2.2.tar.gz
2). 解壓縮 libevent-1.3.tar.gz ,編譯安裝
# tar zxvf libevent-1.3.tar.gz
# cd libevent-1.3
# ./configure --prefix=/usr/local/libevent
# make ; make install
3)安裝memcache
# tar zxvf memcached-1.2.2.tar.gz
# cd memcached-1.2.2
# ./configure --prefix=/usr/local/memchached --with-libevent=/usr/local/libevent
# make;make install
測試memcache服務正常
/usr/local/memcached/bin/memcached -d -m 256 -p 11211 -u root
4)安裝php擴充
# tar zxf memcache-2.2.3.tgz
# cd memcache-2.2.3
# /usr/local/servers/php5/bin/phpize
# ./configure --enable-memcache=/usr/local/servers/memcached --with-php-config=/usr/local/servers/php5/bin/php-config
# make && make install
安裝memcached擴充
這一步可以到這樣看 http://techbbs.zol.com.cn/1/9_3174_uid_popslay.html,這裡說得比較詳細一點
三、mcrypt擴充的安裝
PHP程式員們在編寫代碼程式時,除了要保證代碼的高效能之外,還有一點是非常重要的,那就是程式的安全性保障。PHP除了內建的幾種加密函數外,還有功能更全面的PHP加密擴充庫Mcrypt和Mhash。
其中,Mcrypt擴充庫可以實現加密解密功能,就是既能將明文加密,也可以密文還原。PHP加密擴充庫Mcrypt的演算法和加密模式
Mcrypt庫支援20多種密碼編譯演算法和8種加密模式,具體可以通過函數mcrypt_list_algorithms()和mcrypt_list_modes()來顯示,結果如下:
Mcrypt 支援的演算法有:cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes
Mcrypt支援的加密模式有:cbc cfb ctr ecb ncfb nofb ofb stream
這些演算法和模式在應用中要以常量來表示,寫的時候加上首碼MCRYPT_和MCRYPT_來表示,如下面Mcrypt應用的例子:
DES演算法表示為MCRYPT_DES;
ECB模式表示為MCRYPT_MODE_ECB;
首先要下載三個軟體,分別是
libmcrypt-2.5.8.tar.gz
mhash-0.9.9.tar.gz
mcrypt-2.6.8.tar.gz
在安裝mcrypt之前先安裝號libmcrypt和mhash
# tar -xvf libmcrypt-X.X.X.tar
# cd libmcrypt-X.X.X
# ./configure
# tar -xvf mhash-X.X.X.tar
# cd mhash-X.X.X
# ./configure
# ldconfig
#tar -xvf mcrypt.x.x.xtar
#cd mcrypt
#./configure --prefix=/usr/loca/mcrypt
make && make install
cd php/ext/mcrypt
phpize
./configure --with-mcrypt=/usr/local/mcrypt --with-php-config=/usr/local/php/bin/php-config
make && make install
擴充安裝的方法網上有很多,這幾個我按照這個步驟親測過是可行的,當然,linux下安裝軟體各種依賴包本來就很複雜,不通的版本可能還需要安裝一些其他的