mac自動(dòng)Apache和PHP啟動(dòng)Apache之后,然后啟動(dòng)下配置好的地址出現(xiàn)如下錯(cuò)誤
Fatal error: Call to undefined function Util\mcrypt_decrypt() in Util/Mcrypt.class.php on line 61
要使mcrypt軟件能夠運(yùn)行,然后安裝PHP擴(kuò)展模塊幔戏,并在php.ini配置。
首先which php 查看本機(jī)PHP安裝路徑
/usr/bin/php
php -v 查看PHP版本
PHP 5.6.30 (cli) (built: Feb 7 2017 16:18:37)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
下載需要軟件包
1税课、下載php(下載對應(yīng)版本PHP 5.6.30的PHP源文件)
http://php.net/releases/
2闲延、下載libmcrypt(安裝mcrypt需要此軟件包)
http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
3、下載mhash(安裝mcrypt需要此軟件包)
https://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/
4韩玩、下載mcrypt
https://sourceforge.net/projects/mcrypt/files/Libmcrypt/
(mac上有時(shí)會(huì)在make時(shí)有錯(cuò)誤:rfc2440.c:26:20: error: malloc.h: No such file or directory垒玲,修改 rfc2440.c:#include <malloc.h>為#include <sys/malloc.h>, 重新make/make install即可)
安裝軟件
1.先安裝Libmcrypt
#tar -zxvf libmcrypt-2.5.8.tar.gz
#cd libmcrypt-2.5.8
#./configure
#make
#make install
說明:libmcript默認(rèn)安裝在/usr/local
2.安裝mhash
#tar -zxvf mhash-0.9.9.9.tar.gz
#cd mhash-0.9.9.9
#./configure
#make
#make install (說明:如果報(bào)權(quán)限錯(cuò)誤,可以執(zhí)行sudo make install)
3.安裝mcrypt
#tar -zxvf mcrypt-2.6.8.tar.gz
#cd mcrypt-2.6.8
#LD_LIBRARY_PATH=/usr/local/lib/ ./configure -with-libmcrypt-prefix=/usr/local
#make
#make install
說明:(mac上有時(shí)會(huì)在make時(shí)有錯(cuò)誤:rfc2440.c:26:20:
error: malloc.h: No such file or directory找颓,
修改 rfc2440.c:#include <malloc.h>為#include <sys/malloc.h>,
重新make/make install即可)
4.使用PHP編譯出需要的加密庫即生成mcypt.so文件
解壓PHP源碼文件(一定是和系統(tǒng)的php的版本號(hào)一致)合愈。
Mac OS X 10.12中預(yù)裝的PHP版本是5.6.30,所以需要下載這個(gè)版本击狮。
在終端執(zhí)行如下命令:
#tar zxvf php-5.3.4.tar.gz
#cd php-5.3.4/ext/mcrypt
#phpize(如果./configure不能執(zhí)行 先下載autoconf.tar.gz解壓
在autoconf文件夾目錄下執(zhí)行./configure
然后make && make install
安裝autoconf后就能在php文件夾下使用./configure配置php了)
#./configure
#make
然后將編譯好的so文件佛析,復(fù)制到對應(yīng)路徑
sudo cp modules/mcrypt.so /usr/lib/php/extensions/no-debug-non-zts-20130626/
(no-debug-non-zts-20130626這個(gè)文件夾可能不一樣,根據(jù)你的實(shí)際來改)
在執(zhí)行如上命令的時(shí)候彪蓬,10.12會(huì)出現(xiàn)錯(cuò)誤
Operation not permitted
解決辦法:參考地址
簡單來說就是 El Capitan 加入了Rootless機(jī)制寸莫,不再能夠隨心所欲的讀寫很多路徑下了。設(shè)置 root 權(quán)限也不行档冬。
折騰到這里膘茎,可以配置PHP加密擴(kuò)展了
打開php.ini
sudo vi /etc/php.ini
在usr/etc/php.ini,中加入如下代碼酷誓,并保存后退出披坏,然后重啟Apache(如沒有復(fù)制php.ini.default,有時(shí)要修改寫權(quán)限:chmod 777 php.ini )
extension=/usr/lib/php/extensions/no-debug-non-zts-20130626/mcrypt.so
到這就結(jié)束了。