今天安裝完 PHP ,訪問某個功能時, /var/log/httpd/error_log 中報如下錯誤:
PHP Fatal error: Call to undefined function mcrypt_get_block_size() in /var/www/html/miniblog/system/classes/class_DES.php on line 40
心想必是 mcrypt沒有安裝
安裝步驟如下:
1.查看當前 php 版本 #php -version
2.如果當前linux 中有php的源碼包最好,如果沒有源碼包,需要去下載一個原碼包,上傳到服務器解壓
3.確認是否已安裝libmcrypt
ldconfig -p | grep libmcrypt
如果沒有安裝:
下載地址:http://sourceforge.net/projects/mcrypt
可以同時下載libmcrypt 和 mcrypt
先安裝libmcrypt, 默認安裝目錄為 /usr/local , PHP 手冊建議--disable-posix-threads ,不知何故
./configure && make && make install
ldconfig
再安裝mcrypt, 默認安裝目錄為 /usr/local
./configure --with-libmcrypt-prefix=/usr/local
4. 確認是否已安裝mhash
ldconfig -p | grep mhash
如果沒有安裝:
下載地址:http://mhash.sourceforge.net/
./configure && make && make install
ldconfig
5.進入源碼目錄,安裝mcrypt模塊,這一步會生成一個mcrypt.so文件
cd php-x.x.x/ext/mcrypt
./configure --with-mcrypt=/usr/local/ && make && make install
6.在/etc/php.ini最后面加上一行:extension=/usr/lib/php/modules/mcrypt.so
7.重啟php #service httpd restart