mcrypt 是php裡面重要的加密支援擴充庫,linux環境下該程式庫在預設情況下不會開啟。 window環境下,PHP>=5.3,預設開啟mcrypt擴充。 mcrypt擴充是mcrypt加密庫的介面。這個擴充對於允許使用mcrypt的PHP程式碼在PHP 7.2 上運行非常有用。
mcrypt擴充功能的主要問題是,它是基於libmcrypt的,自2007年開始就沒有開發過。因此,即使libmcrypt仍在使用,但由於缺乏適當的開發和維護,程式庫的安全問題已成為許多系統管理員的焦點。
由於mcrypt擴充開發的結束,擴充也從PHP 7.2刪除,並轉移到一個非官方的PECL儲存庫。但是,你仍然可以在PHP 5.4到PHP 7.1找到mcrypt擴充。 PHP 7.2已經發布,但它不包含mcrypt擴充功能。對於PHP 7.2 , PHP使用libsodium作為加密函式庫。
要在PHP 7.2上安裝mcrypt擴展,請以伺服器的root使用者身分執行以下命令:
驗證php和pecl版本
php -v pecl version
如果你的php不是7.2,那麼用/usr/bin/php7.2來代替php指令。
#安裝mcrypt擴充功能
Mcrypt PECL擴充功能
sudo apt-get -y install gcc make autoconf libc-dev pkg-config sudo apt-get -y install libmcrypt-dev sudo pecl install mcrypt-1.0.1
當你看到提示時
libmcrypt prefix? [autodetect] :
按[Enter]自動偵測。
安裝mcrypt trought pecl成功後,你應該將mcrypt.so副檔名加入php.ini。
輸出將如下所示:
... Build process completed successfully Installing '/usr/lib/php/20170718/mcrypt.so' ----> this is our path to mcrypt extension lib install ok: channel://pecl.php.net/mcrypt-1.0.1 configuration option "php_ini" is not set to php.ini location You should add "extension=mcrypt.so" to php.ini
取得安裝路徑並新增至cli和apache2 php.ini設定。
sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini" sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/apache2/conf.d/mcrypt.ini"
驗證擴充功能是否已安裝
執行指令:
php -i | grep "mcrypt"
輸出將如下所示:
/etc/php/7.2/cli/conf.d/mcrypt.ini Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*, mcrypt.*, mdecrypt.* mcrypt mcrypt support => enabled mcrypt_filter support => enabled mcrypt.algorithms_dir => no value => no value mcrypt.modes_dir => no value => no value
常問問題
問:看到錯誤訊息:ERROR: 'phpize' failed
#答案:你可以安裝php7.2-dev apt-get install php7.2-dev
問:在MacOS / OSX上安裝PHP 7.1和highet設定的解決方案是什麼?
答:你可以使用macports,然後就可以安裝sudo port install php71-mcrypt
相關推薦:《PHP教學》
#本篇文章就是在php7.2 / php7.3中安裝mcrypt擴充功能的方法介紹,希望對需要的朋友有幫助!
以上是如何在php7.2/php7.3中安裝mcrypt擴充功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!