方案一
安裝mcrypt需要解決對libmcrypt還有mhash的依賴,所以先安裝libmcrypt和mhash
libmcrypt-2.5.8.tar.gz
下載地址:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459
mhash-0.9.9.tar.gz
下載地址:http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636
mcrypt-2.6.8.tar.gz
下載地址:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101
# tar -xvf libmcrypt-X.X.X.tar
# cd libmcrypt-X.X.X
# ./configure
現在你應該已經把libmcrypt作為一個共享組件了(但不是一個PHP的共享組件)
運行命令:
# ldconfig
它將使得共享對象可以在C/C++開發中被使用。下面把mcrypt動態組件編譯到PHP中。首先,你需要PHP-devel 包中包含的 'phpize‘ 命令。
當你當前運行的PHP中已經有了 PHP-devel 後,輸入:
# cd ext/mcrypt
# phpize
# aclocal
# ./configure
# make clean
# make
# make install
現在php的安裝目錄下面應該有了mcrypt.so 的文件,在 /etc/php.ini 添加:
extension=mcrypt.so
然後重啟一下apache,這樣我們就已經將mcrypt功能安裝成功了。
特別注意:
1、phpize需在解壓後的源碼包下執行,執行後生成configure腳本
2、運行./configure時,如果提示
configure: error: Cannot find php-config. Please use --with-php-config=PATH
請使用:
./configure --with-php-config=/php-install-path/bin/php-config #而不是使用php.ini
安裝方案二(推薦用方案二)
1.先安裝Libmcrypt
#tar -zxvf libmcrypt-2.5.8.tar.gz
#cd libmcrypt-2.5.8
#./configure
#make
#make install
說明:libmcript默認安裝在/usr/local
2.安裝mhash
#tar -zxvf mhash-0.9.9.9.tar.gz
#cd mhash-0.9.9.9
#./configure
#make
#make install
3.安裝mcrypt
#tar -zxvf mcrypt-2.6.8.tar.gz
#cd mcrypt-2.6.8
#LD_LIBRARY_PATH=/usr/local/lib ./configure
#make
#make install
4. 網上很多都說要重新編譯 php,比如‘方案一‘
特別是make,時間太久有容易出錯
在mcrypt的php官方安裝幫助裡面找到答案
You can install Mcrypt from the PHP Source Tree as a module if you choose.
You first need to ensure you have libmcrypt, libmcrypt-devel, and mcrypt installed, then do:
說明:此步之前確保php目錄下有mcrypt目錄,確保mcrypt下有phpize和aclocal文件。本人安裝幾次後才安裝好,執行命令的時候確保相對目錄有相對的文件
# cd php-5.x.x/ext/mcrypt
# phpize
# aclocal
# ./configure
# make && make install
Enable the module by adding: 'extension=mcrypt.so' to PHP.ini.
發現在Php 的編譯包裡面有這些擴展,phpize命令就是專門給Php擴展用的,免去了重新給Php編譯的麻煩
具體操作:
1).要有與現有php完全相同的php壓縮包 ,展開後進入裡面的ext/mcrypt目錄 (裡面是mcrypt的php擴展)
#cd /usr/local/php-x.x.x/ext/mcrypt
2).執行/usr/local/php5/bin/phpize
#/usr/local/php5/bin/phpize
3).編譯安裝
執行完後,會發現當前目錄下多了一些configure文件,如果沒報錯,則根據提示運行
注意要先確保/usr/local/php5/bin/php-config存在(如果是默認編譯php包的話–with-php-config可以省略,會自動找到)。
一定要到目錄下去看一下這個文件是否存在,安全第一!!!
執行:
./configure -with-php-config=/usr/local/php5/bin/php-config
make
make install
會出現一些信息,給你一些安裝後的信息,mcrypt.so的目錄記下來下面有用到
4). 拷貝mcrypt.so文件
make install 之後系統會提示你mcrypt.so文件所在的目錄
#cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090613/mcrypt.so /usr/local/php5/lib/php/extensions/
5).配置php.ini
#vi /usr/local/lib/php.ini
先找到extension_dir = "/usr/local/php/lib/php/extensions/"看下後面是否有mcrypt.so後綴,編譯的時候會自動寫進php.ini
沒有的話就執行下面操作
修改php.ini
配置extension_dir = "/usr/local/php/lib/php/extensions/"
在最後添加一句extension=mcrypt.so
變成:extension_dir = "/usr/local/php5/lib/php/extensions/mcrypt.so"
5.重啟apache和mysql